我的jQuery复选框.on('click')代码甚至在检查触发器启动之前运行/非常混乱!所以,当复选框加载时,我点击它,代码运行。但是当页面被简单加载时,内部测试中的sql“if box is checked”会运行。这里是代码:jQuery点击运行检查框前的检查条件
jQuery('#chk_uploaded').on('click', function (event) {
if (jQuery('#chk_uploaded').is(':checked') != true) {
//window.alert("checked - activityid, approveddate, session['lm_required] = <?php echo $Activity_ID?>, 20<?php echo $FY ?>-06-30, <?php echo $_SESSION['lm_required'] ?>");
<?php
$set_lm_required_SQL = "UPDATE cpy_activity SET lm_required = 1 WHERE activityid = " . $Activity_ID . " and approveddate > '20" . $FY . "-06-30' ";
$set_lm_required_RESULT = mssql_query($set_lm_required_SQL);
?>
window.alert("<?php echo $set_lm_required_SQL ?>");
} else {
window.alert("unchecked");
<?php
$reset_lm_required_SQL = "UPDATE cpy_activity SET lm_required = " . $_SESSION['lm_required'] . " WHERE activityid = " . $Activity_ID . " and approveddate > '20" . $FY . "-06-30' ";
$reset_lm_required_RESULT = mssql_query($set_lm_required_SQL);
?>
window.alert("<?php echo $reset_lm_required_SQL ?>");
}
});
基本上,我抓住了$ _SESSION VAR较早,所以当用户检查框中再次[取消选中]我可以重置lm_required VAR回到它最初。
因此,代码在勾选时会弹出“已检查”警报,未勾选时会弹出“未勾选”警报。当我将sql代码放入每个条件内时,它会提示sql语句正常。然后,当我提交sql来运行结果,并简单地加载页面时,sql将var设置为1.也就是说,我使用msSEM和值= 0进行查询。我只是加载页面,并且值= 1 ,在我检查框之前。任何想法为什么?
您可以在复选框上添加onchange事件而不是单击事件。 – Webinion
PHP在服务器上执行,客户端上的JavaScript。那些是两个不同的“世界” – Andreas
thx,Pandhi - 我保持“点击”,但后来提到了修复的ajax函数。 Andreas thx也是花时间回复。建议 - 添加到你的评论:“一个安全的方式来使用这些世界是通过Ajax - 张贴到一个网址,照顾SQL。这样你保持他们分开,但应该发生时,你的SQL完成。”那么我会去看看阿贾克斯。我做了,并得到它的工作。人们从不同层面来到这里,而那些帮助引导用户前进的回应是有价值的。 – dcparham