我是php新手。
jquery中有一个名为editMode
的变量设置为false
。我在jquery中使用$.post()
在php函数中传递变量。但是当我检查它的值时,这个值是好的,但是if语句并没有按照它应该的方式工作。这是我的代码:
jquery(只是一个片段):
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
});
在my 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
子句。请启发我。 最佳答案
在签入条件语句之前,可以验证布尔值:
$editMode = 'False';
$editMode = filter_var($editMode, FILTER_VALIDATE_BOOLEAN);
if ($editMode) {
echo $editMode . ": edit"; //fires update query
} else {
echo $editMode . "add"; //fires insert query
}