我的jQuery复选框.on('click')代码甚至在启动检查触发器之前运行/非常混乱!所以,当复选框加载,然后我点击它,该代码运行。但是当页面被简单加载时,内部测试中的sql“if box is checked”运行。这是代码:
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,因此当用户再次选中该框[unchecks]时,我可以将lm_required var重置回原来的状态。
因此代码会在选中此框时弹出“已检查”警报,并在未选中时“取消选中”。当我在每个条件中放入sql代码时,它会正常警告sql语句。然后,当我提交sql来运行结果,并简单地加载页面时,sql将var设置为1.也就是说,我使用msSEM查询并且值= 0.我只是加载页面,值= 1 ,在我勾选方框之前。任何想法为什么?
答案 0 :(得分:0)
这里需要的是,在Andreas的指导下,将JavaScript和PHP世界分开==&gt;使用带有.ajax函数的jQuery。这段代码基本上总结了我的所作所为:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<?php
$FY=16;
$Activity_ID=12345;
?>
<script language="javascript">
jQuery.ajax({
url: "ajax_test2.php",
type: "POST",
data: {fy: <?php echo $FY; ?>, acid: <?php echo $Activity_ID; ?>},
success: function(response){
// alert $result from the php page which is called response here.
alert(response);
}
});
</script>
</body></html>
然后在ajax_test2.php中:
<?php
$hostname_sqldata = "db server name here";
$database_sqldata = "db name here";
$username_sqldata = "username here";
$password_sqldata = "password here";
$sql_conn = mssql_connect($hostname_sqldata, $username_sqldata, $password_sqldata);
if ( ! $sql_conn ) {
echo "MS SQL connection error: $hostname_sqldata == " . mssql_get_last_message() ;
exit ;
}
if ( !mssql_select_db( $database_sqldata, $sql_conn ) ) {
die('MS SQL : Unable to select database!');
}
if ($_POST['fy'] != null && $_POST['acid'] != null ){
$fy = $_POST['fy'];
$acid = $_POST['acid'];
$set_lm_required_SQL = "UPDATE table_name SET lm_required = 1 where activityid = $acid";
$set_lm_required_result = mssql_query($set_lm_required_SQL);
$get_lm_required_SQL = "SELECT * FROM cpy_activity WHERE activityid = $acid";
$get_lm_required_result = mssql_query($get_lm_required_SQL);
$row = mssql_fetch_array($get_lm_required_result);
$lm_required = $row['lm_required'];
$result = "fy/acid/lm_required: " . $fy . "/" . $acid . "/" . $lm_required . "";
//$result = $set_lm_required_SQL;
}else{
// either of the values doesn't exist
$result = "No Data Was Sent !";
}
// returning $result which is either 15 or " no data was sent "
echo $result;
?>
我希望我得到所有4空格代码间距。检查parens是否正确配对,但这是我用于成功测试的代码。 thx,全部供您参考!