在选中框之前,jQuery单击运行已检查条件

时间:2017-07-31 16:09:04

标签: jquery click

我的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 ,在我勾选方框之前。任何想法为什么?

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,全部供您参考!