【发布时间】:2019-07-29 04:34:43
【问题描述】:
我是 PHP 新手。
我在 jquery 中有一个名为 editMode 的变量设置为 false。我在 jquery 中使用 $.post() 在 php 函数中传递变量。但是当我检查它的值时,它的值很好,但是 if 语句没有按照它应该的方式运行。这是我的代码:
jQuery(只是一个 sn-p):
var editMode = false;
$(document).ready(function(){
//some function that handles UI input that triggers editMode=true
$("#form").submit(function(event){
event.preventDefault();
var fName = $("#firstname").val();
var lName = $("#lastname").val();
//... and the rest of post values coming from UI input
$.post('includes/sql/register.php', {
fName: fName,
lName: lName,
//... and the rest of post values coming from UI input
editMode: editMode // this is where I post the value for editMode
},
//jQuery function to handle the result
});
在我的 register.php 中:
<?php
if(isset($_POST['submit'])){
$fName = mysqli_escape_string($conn,$_POST['fName']);
$lName = mysqli_escape_string($conn,$_POST['lName']);
//and other post values from UI input
$editMode = $_POST['editMode'];
if($editMode) {
echo $editMode . ": edit"; //fires update query
} else {
echo $editMode . "add"; //fires insert query
}
}
?>
在测试代码时,它返回了正确的$editMode 值,但没有正确执行if 语句。我的意思是,如果$editMode 为真,它会回显:true: edit,这很好。但是当它为假时,它会回显:false: edit。所以它仍然执行if 子句,即使它的值现在是false。我也试过if($editMode === true) {//edit} else {//add},结果正好相反。无论$editMode 是真还是假,它都会执行else 子句。请赐教。
【问题讨论】:
-
您可以发送一个标志,1 代表真,0 代表假(而不是 JavaScript 中的
true/false)。这变成了if ("0")是假的,或者if ("1")是真的。所有 POST 数据都以字符串形式发送(如果我没记错的话,出于某种原因也可以使用布尔值)。 -
回答了!您可以将其发布为答案,以便我可以将其标记为已解决。谢了哥们! :)
标签: php jquery if-statement boolean