您好我正在尝试通过单击复选框来更新数据库表,但它无法正常工作。
HTML:
<input name="no_cage" id="no_cage" type="checkbox" value="1" onclick="chkit(<?php echo $estimate_id; ?>,'no_cage');" <?php echo $checked; ?>
AJAX:
function chkit(estimate_id, no_cage) {
chk=document.getElementById("no_cage").checked;
$.ajax({
type: 'GET',
url: 'ajax.php',
data: { chkYesNo: no_cage, estimate_id: estimate_id}
});
}
ajax.php
<?php
error_reporting(E_ALL);
include($_SERVER["DOCUMENT_ROOT"]."/dbconnect.php");
$get=$_GET['chkYesNo'];
$get_id=$_GET['estimate_id'];
if($get=="1")
{
$sql = "UPDATE estimates SET
no_cage = '1',
cage_linear_feet = '',
cage_doors = '',
cage_options = '',
cage_labor = ''
WHERE estimate_id = '".$get_id."'";
if ($conn->query($sql) === TRUE) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
else
{
}
?>
任何人都能看到我失踪的是什么吗?我不是专家,并且一直玩弄了很长一段时间没有运气。
谢谢,
约翰
答案 0 :(得分:2)
当您将'no_cage'
作为
onclick="chkit(<?php echo $estimate_id; ?>,'no_cage');"
然后通过AJAX将其传递给PHP
data: { chkYesNo: no_cage, estimate_id: estimate_id}
^^^^^^^^
当您到达PHP代码$get
时,= no_cage
将永远不会像您的PHP代码所期望的那样1
$get=$_GET['chkYesNo']; // which will = `no_cage'`
if($get=="1")
简而言之,您实际上从未运行过查询
在查找复选框是否已选中时,请尝试此操作,因为您的代码将返回true
或false
,这可能会导致问题
function chkit(estimate_id, no_cage) {
chk = document.getElementById("no_cage").checked ? 1 : 0;
$.ajax({
type: 'GET',
url: 'ajax.php',
data: { chkYesNo: chk, estimate_id: estimate_id}
});
}
答案 1 :(得分:0)
更正变量 chkYesNo 的值, 你必须把var chk 放在例如
if(chk){
chk=1
}else{
chk=0
}
数据:
{chkYesNo:chk,estimate_id:estimate_id}