javascript - 我在 PHP 中使用 JS,由于某种原因,即使 If 不正确,JS 也不会转到 else
问题描述
正如标题所暗示的,下面的代码是 PHP 文件中的一些 JS,由于某种原因,即使 if 不正确,JS 也不会转到 else。在当前状态下,无论哪个 if 语句首先放置都会正确运行,但第二个语句将永远不会触发。该系统的设计目的是在人员 === true 时运行 x 个查询,并在 user == true 时运行 y 个查询
会话.php
<?php
// mysqli_connect() function opens a new connection to the MySQL server.
$conn = mysqli_connect("localhost", "root", "", "sports world");
session_start();// Starting Session
// Storing Session
$user_check = $_SESSION['login_user2'];
$p = $_SESSION['login_user3'];
?>
<script>
if sessionStorage.getItem('status2') === 'staff') {
<?php
// SQL Query To Fetch Information Of User
$query = "SELECT Username from staff where Username = '$user_check'";
$ses_sql = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($ses_sql);
$login_session = $row['Username'];
// SQL Query To Fetch Information Of User
$query2 = "SELECT StaffCode from staff where Username = '$user_check' AND Password = '$p'";
$ses_sql2 = mysqli_query($conn, $query2);
$row2 = mysqli_fetch_assoc($ses_sql2);
$cust = $row2['StaffCode'];
$_SESSION['CustCode'] = $cust;
// SQL Query To Fetch Information Of User
$query3 = "SELECT StaffGivenName As 'Given Name', StaffSurname As 'Surname' from staff where StaffCode = '$cust'";
$ses_sql3 = mysqli_query($conn, $query3);
$row3 = mysqli_fetch_assoc($ses_sql3);
$name1 = $row3['Given Name'];
$name2 = $row3['Surname'];
$_SESSION['Given Name'] = $name1;
$_SESSION['Surname'] = $name2;
// SQL Query To Fetch Information Of User
$queryAccountDeatils = "SELECT StaffDob As 'Date of Birth', StaffGender As 'Gender', StaffAddress1 As 'Address', StaffAddress2 As 'Region', StaffPostCode As 'Post Code', StaffPhone As 'Phone Number', StaffEmail As 'Email', StaffTFN As 'Message Preferences', StaffEmerConName As 'Member Type', StaffEmerConPhone As 'Sports' from staff where StaffCode = '$cust'";
$ses_sql4 = mysqli_query($conn, $queryAccountDeatils);
$row4 = mysqli_fetch_assoc($ses_sql4);
$Dob = $row4['Date of Birth'];
$Address = $row4['Address'];
$Gender = $row4['Gender'];
$Region = $row4['Region'];
$PostCode = $row4['Post Code'];
$PhoneNumber = $row4['Phone Number'];
$Email = $row4['Email'];
$MessagePref = $row4['Message Preferences'];
$MemberType = $row4['Member Type'];
$Sports = $row4['Sports'];
$_SESSION['Date of Birth'] = $Dob;
$_SESSION['Address'] = $Address;
$_SESSION['Gender'] = $Gender;
$_SESSION['Region'] = $Region;
$_SESSION['Post Code'] = $PostCode;
$_SESSION['Phone Number'] = $PhoneNumber;
$_SESSION['Email'] = $Email;
$_SESSION['Message Preferences'] = $MessagePref;
$_SESSION['Member Type'] = $MemberType;
$_SESSION['Sports'] = $Sports;
?>
} else if (localStorage.getItem('status2') === 'user') {
<?php
// SQL Query To Fetch Information Of User
$query = "SELECT Username from login where Username = '$user_check'";
$ses_sql = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($ses_sql);
$login_session = $row['Username'];
// SQL Query To Fetch Information Of User
$query2 = "SELECT CustCode from login where Username = '$user_check' AND Password = '$p'";
$ses_sql2 = mysqli_query($conn, $query2);
$row2 = mysqli_fetch_assoc($ses_sql2);
$cust = $row2['CustCode'];
$_SESSION['CustCode'] = $cust;
// SQL Query To Fetch Information Of User
$query3 = "SELECT CustGivenName As 'Given Name', CustSurname As 'Surname' from customers where CustCode = '$cust'";
$ses_sql3 = mysqli_query($conn, $query3);
$row3 = mysqli_fetch_assoc($ses_sql3);
$name1 = $row3['Given Name'];
$name2 = $row3['Surname'];
$_SESSION['Given Name'] = $name1;
$_SESSION['Surname'] = $name2;
// SQL Query To Fetch Information Of User
$queryAccountDeatils = "SELECT CustDob As 'Date of Birth', CustGender As 'Gender', CustAddress1 As 'Address', CustAddress2 As 'Region', CustPostCode As 'Post Code', CustPhone As 'Phone Number', CustEmail As 'Email', CustMsgPref As 'Message Preferences', CustMemberType As 'Member Type', CustSports As 'Sports' from customers where CustCode = '$cust'";
$ses_sql4 = mysqli_query($conn, $queryAccountDeatils);
$row4 = mysqli_fetch_assoc($ses_sql4);
$Dob = $row4['Date of Birth'];
$Address = $row4['Address'];
$Gender = $row4['Gender'];
$Region = $row4['Region'];
$PostCode = $row4['Post Code'];
$PhoneNumber = $row4['Phone Number'];
$Email = $row4['Email'];
$MessagePref = $row4['Message Preferences'];
$MemberType = $row4['Member Type'];
$Sports = $row4['Sports'];
$_SESSION['Date of Birth'] = $Dob;
$_SESSION['Address'] = $Address;
$_SESSION['Gender'] = $Gender;
$_SESSION['Region'] = $Region;
$_SESSION['Post Code'] = $PostCode;
$_SESSION['Phone Number'] = $PhoneNumber;
$_SESSION['Email'] = $Email;
$_SESSION['Message Preferences'] = $MessagePref;
$_SESSION['Member Type'] = $MemberType;
$_SESSION['Sports'] = $Sports;
?>
}
</script>
解决方案
PHP 在将页面内容发送到浏览器之前由服务器执行,一旦它到达用户的浏览器,您与 HTML 一起发送的任何 JS 都可以执行。
但是,您将无法返回并运行更多 PHP 代码,具体取决于您尝试的 Javascript if 语句的结果。不过,您确实有一些选择。
选项1:
使用 PHP 编写一些JS 表达式或函数,这些表达式或函数将在客户端运行,方法是将echo
有效的 JS 表达式放入<scirpt>
标签中。但是再次运行您的 MySQL 查询必须首先在服务器端阶段进行。
选项 2:
您还可以使用 AJAX 样式的 JS 调用来调用辅助 PHP 脚本,以将您的结果作为 JSON 或其他一些可消耗格式回显。jQuery 具有 AJAX 函数或查看“Axios”或浏览器原生的“fetch()”。
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
选项 3:
如果可以的话,忘记 Javascript 并将 If...Else 写入 PHP 逻辑。
推荐阅读
- reactjs - 自定义挂钩中的状态未更新
- matlab - Matlab关于通过相关性平滑图像的问题
- python - Python3中带有西里尔字母的“charmap编解码器无法编码字符”错误
- javascript - React 抛出错误:对象作为 React 子对象无效
- r - 为数据框中变量的每个值重复一个 ggplot
- javascript - Javascript 对象的类型
- java - java.lang.NullPointerException:当使用同一个包的另一个类而没有包声明时
- javascript - firebase:不要从实时数据库中获取数据
- c++ - 从 C++ 使用 C++ 库时未定义的引用
- html - 如何将不同尺寸的 SVG 设置为相同的高度?