从编辑模态表单获取复选框值

时间:2019-10-29 02:10:30

标签: php mysql

首先要说我是使用PHP和javascript的完全新手。

我正在创建一个CRUD网页,当单击数据表的“编辑”按钮时,会打开一个引导模式,我可以编辑数据。

我能够使所有这些工作并写入mysql。但是在从模态形式的复选框输入(1或0)获取值以填充到mysql时遇到了麻烦。

几天来我一直在试图解决这个问题,并且已经在网上搜索了,无法为我的生命解决这个问题。任何帮助,将不胜感激。这是我的代码:

----- JS和ajax调用----

$(function(){
    $('.edit').click(function(e){
        e.preventDefault();
        $('#edit').on('shown.bs.modal', function(){
            $('#active').bootstrapToggle({
            on: 'not active',
            off: 'active',
            onstyle: 'danger',
            offstyle: 'success'
         });
            $('#active').change(function(){
                if($(this).prop('checked')){
                    $('#hidden_active').val('1');} 
                    else
                    {$('#hidden_active').val('0');}
             });
          }).modal('show');
          var id = $(this).data('id');
          getRow(id);

   });


function getRow(id){
    $.ajax({
        type: 'POST',
        url: 'post_row.php',
        data: {id:id},
        dataType: 'json',
        success: function(response){
        $('#edit_active').prop('checked', response.notactive == '1');
    //....more rows follow
        }
     });
}

---模态形式----

<div class="form-group">
    <label for="edit_active" class="col-sm-3 control-label">Active</label>

    <div class="checkbox col-sm-9">
        <input type="checkbox" name="active" id="edit_active"/>
    </div>
 </div>
    <input type="hidden" name="hidden_active" id="hidden_active" value='1'/>

----- PHP更新------

<?php
include 'includes/session.php';

if(isset($_POST['edit'])){
    $seq = $_POST['seq'];
    $active = $_POST['hidden_active']; 

    $sql = "UPDATE posts SET seq = '$seq', notactive = '$active' , date_inactive = if ('$active' = 1, NOW(), NULL) WHERE id = '$id'";
    if($conn->query($sql)){
        $_SESSION['success'] = 'Updated successfully';
    }
    else{
        $_SESSION['error'] = $conn->error;
    }
}
else{
    $_SESSION['error'] = 'Complete form first';
}

header('location:post.php');

?>

如果未选中(切换)复选框,则mysql更新为0,如果选中的mysql更新为1。但是什么也没有发生,值1是唯一通过的值,或者更新时什么也没有。

0 个答案:

没有答案