【问题标题】:Set checkbox state after ajax queryajax查询后设置复选框状态
【发布时间】:2013-11-16 14:01:18
【问题描述】:

根据mysql 数据库中的值,我希望选中或取消选中复选框。尽管ajax 查询获得了正确的值,但复选框始终保持选中状态

Jquery

<script type="text/javascript">
        $(document).ready(function() {
            $.ajax({
                type: "POST",
                url: "ajax/get_db_settings.php",
                dataType: "json",
                data: 'user='+1,
                success:function(response){
                    var taken_by_on = response.taken_by;
                    alert(taken_by_on);
                    if(taken_by_on = 0){
                        $('.taken_by_input').attr('disabled',true).css('color','#F0F0F0');
                        $('#taken_by_enable').prop('checked', false);
                    }else if(taken_by_on = 1){
                        $('.taken_by_input').attr('disabled',false).css('color','#000');
                        $('#taken_by_enable').prop('checked', true);
                    }
                },error:function (xhr, ajaxOptions, thrownError){
                alert(thrownError);
             }
         }); 
    });
</script>

get_db_settings.php

$user_id = $_POST['user'];   
$sql = "SELECT * FROM user WHERE userID = $user_id";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
if($result){
   $row = mysqli_fetch_array($result); 
   $taken_by_on = $row['takenByOn'];

   $output_array = array(
        'taken_by' => $taken_by_on
    );
}
echo json_encode($output_array);

html

<form name="add_positioning" class="postable" id="add_positioning">
<table border="0" class="autoTable_pos">
<tr>
  <td colspan="2" style="text-align:left">Enable <input style="width:10px" 
   type="checkbox" name="taken_by" id="taken_by_enable">
  </td>
</tr>
<?
$sql= "SELECT * FROM gradeReason WHERE reason_userID = $id AND category = 'positioning' AND current = 1 ORDER BY reasonID";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
while($row = mysqli_fetch_array($result)){?>
<tr>
  <td>
  <input type="text" class="taken_by_input outline ie7_td"
   name="reason[][<? echo $row['reasonID']; ?>]" value="<? echo $row['reason_name']; ?>"/>
  </td>
  <td><input type="button" name="delete_pos" value="" 
  class="taken_by_input delRow_pos del_reason_btn del_taken_in"
  onClick="UpdateRecord(<? echo $row['reasonID']; ?>);"/>
  </td>
</tr>
<?
}
?>
</table>
</form>

计划是,如果数据库中的值为 1,则选中复选框并启用表中的输入,而如果值为 0,则禁用它们,复选框将保持未选中状态。

我正在使用 array 传回来自 Ajax 的值,因为我打算在完成这项工作后添加更多内容

【问题讨论】:

  • 单个=是赋值,==是比较...

标签: php jquery mysql ajax checkbox


【解决方案1】:

在if条件中,你需要使用==而不是==是赋值运算符,你需要等于运算符是==

if (taken_by_on == 0) {
    $('.taken_by_input').attr('disabled', true).css('color', '#F0F0F0');
    $('#taken_by_enable').prop('checked', false);
} else if (taken_by_on == 1) {
    $('.taken_by_input').attr('disabled', false).css('color', '#000');
    $('#taken_by_enable').prop('checked', true);
}

【讨论】:

    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2013-12-16
    • 2016-02-17
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2019-04-17
    • 2016-06-15
    相关资源
    最近更新 更多