在bootstrap模式内部形式不更新mysql

时间:2016-01-09 15:28:06

标签: javascript php mysql twitter-bootstrap sql-update

我的页面中有一个表格,显示有关某个请求的数据。 enter image description here

当我点击“添加Cedula Number'”这是一个按钮时,它会显示一个bootstrap模式。在里面,有一个表格。 enter image description here

ID中的值14是该行的ID,它来自以下代码:

<td class=" ">
    <button class="btn btn-primary btn-xs" id="<?php echo $data['idPerson'];?>" data-toggle="modal" data-target="#myModal"> Add Cedula Number </button>
</td>

现在,为了传递模态中的值,我使用了以下代码:

<script>
    $('#myModal').on('show.bs.modal', function (e) {
        $(this).find('.modal-body').html('   <div class="form-group"><label class="col-sm-3 control-label">ID</label><div class="col-sm-9"><input type="text" value = ' + e.relatedTarget.id +' class="form-control" id="person_id" name="person_id" readonly="readonly"></div></div>          <div class="form-group"> <label class="col-sm-3 control-label">Date</label><div class="col-sm-9"><input type="date" readonly="readonly" class="form-control" id="cedula_date" value="<?php echo date("Y-m-d");?>" name="cedula_date"></div></div>           <div class="form-group"> <label class="col-sm-3 control-label">Cedula Number</label><div class="col-sm-9"><input type="number" class="form-control" id="cedula_number" name="cedula_number"/></div></div>' );
    })
</script>

这是我的模态代码:

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">
                    <span aria-hidden="true">&times;</span>
                    <span class="sr-only">Close</span>
                </button>
                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
            </div>
            <form id="addCedula" action="paid_cedula.php" class="form-horizontal calender" name = "addCedula" enctype="multipart/form-data" method="post" role="form">
            <div class="modal-body"></div>
            <div class="modal-footer" style="margin:0;">
            <button type="button" class="btn btn-default" 
                            data-dismiss="modal">Close</button>
            <button id="send" type="submit" class="btn btn-success" name="addCedula">Save Record</button>
             </div>
             </form>
        </div>
    </div>
</div>

我的PHP代码是这样的:

<?php
    include 'config.php';
        if(isset($_POST['addCedula'])){
        $id = $_POST['person_id'];
        $date = $_POST['cedula_date'];
        $number = $_POST['cedula_number'];                  
        $sql = mysqli_query($conn, "UPDATE person SET dateOfCedulaPayment='$date' AND cedulaNumber='$number' WHERE idPerson='$id';");
        mysqli_close($conn);                    
        }   
?>

我一直在努力寻找错误数小时。我真的无法找到原因。该值不会在数据库中更新。我哪里做错了?非常感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:3)

您的查询不正确。这不是UPDATE的工作原理。您需要使用逗号而不是AND逻辑运算符http://dev.mysql.com/doc/en/logical-operators.html

UPDATE person SET dateOfCedulaPayment='$date', cedulaNumber='$number' WHERE idPerson='$id';

参考:

检查查询错误会触发语法错误:

旁注:要查看您的查询(更新)是否真的成功,请使用mysqli_affected_rows()

如果不这样做,你可能会误报。

诺塔:

您目前的代码向SQL injection开放。使用prepared statementsPDOprepared statements

答案 1 :(得分:2)

@ Fred的答案解决了问题(Update Query中的错误),这是我的2分

此脚本过于苛刻,无法将数据传递给模态。

<script>
$('#myModal').on('show.bs.modal', function (e) {
    $(this).find('.modal-body').html('   <div class="form-group"><label class="col-sm-3 control-label">ID</label><div class="col-sm-9"><input type="text" value = ' + e.relatedTarget.id +' class="form-control" id="person_id" name="person_id" readonly="readonly"></div></div>          <div class="form-group"> <label class="col-sm-3 control-label">Date</label><div class="col-sm-9"><input type="date" readonly="readonly" class="form-control" id="cedula_date" value="<?php echo date("Y-m-d");?>" name="cedula_date"></div></div>           <div class="form-group"> <label class="col-sm-3 control-label">Cedula Number</label><div class="col-sm-9"><input type="number" class="form-control" id="cedula_number" name="cedula_number"/></div></div>' );
})

您只需将id="<?php echo $data['idPerson'];?>"更改为data-id="<?php echo $data['idPerson'];?>",然后按照3到4行脚本执行相同的工作。

$(document).ready(function(){
    $('#myModal').on('show.bs.modal', function (e) {
        var id = $(e.relatedTarget).data('id');
        alert(id);
        $("#person_id").val(id);
     });
});

模态HTML

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">
                    <span aria-hidden="true">&times;</span>
                    <span class="sr-only">Close</span>
                </button>
                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
            </div>
            <form id="addCedula" action="paid_cedula.php" class="form-horizontal calender" name = "addCedula" enctype="multipart/form-data" method="post" role="form">
                <div class="modal-body">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">ID</label>
                        <div class="col-sm-9">
                            <input type="text" value = "" class="form-control" id="person_id" name="person_id" readonly="readonly">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">Date</label>
                        <div class="col-sm-9">
                            <input type="date" readonly="readonly" class="form-control" id="cedula_date" value="<?php echo date("Y-m-d");?>" name="cedula_date">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">Cedula Number</label>
                        <div class="col-sm-9">
                            <input type="number" class="form-control" id="cedula_number" name="cedula_number"/>
                        </div>
                    </div>
                </div>
            <div class="modal-footer" style="margin:0;">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button id="send" type="submit" class="btn btn-success" name="addCedula">Save Record</button>
            </div>
            </form>
        </div>
    </div>
</div>