使用Ajax / Json更新Mysql记录不起作用

时间:2014-10-07 05:43:32

标签: php jquery mysql ajax json

我要做的是使用php编辑mysql记录。我使用Ajax / Json编辑单个记录,但问题是我的代码无效。单击保存按钮并验证警报输出后,我尝试提醒输入元素的值。而且我也没有在控制台中收到任何消息。

这就是我现在所得到的。任何帮助将不胜感激。

的index.php

<div class="entry-form1">
<form action="" method="post">
<input type="text" name="id_edit" id="id_edit" class="inputs_edit">
<input type="text" name="approved_edit" id="approved_edit" class="inputs_edit">
<input type="submit" name="save_edit" id="save_edit" value="Save"/>
</form>
</div>

的search.php

$query1 = $mysqli->query(""); // not to include
while($r = $query1->fetch_assoc()){
<td><a href='#' name='".$r['id']."' id='".$r['pr_id']."' class='edits'>Edit</a></td>
}

  <script>
  $(document).ready(function(){

$(".edits").click(function(){
    $(".entry-form1").fadeIn("fast");
    //not to include some parts of codes
    $.ajax({
    type: "POST",
    url: "auto-complete.php",
    data :edit_post_value,
    dataType:'json',
    success:function(data){
    var requested=data.requested;
    var id=data.id;
    //send to element ID
    $('#id_edit').val(id);
    $('#requested_edit').val(requested);
    }
    });

    $("#save_edit").click(function () {
    var two = $('#id_edit').val();
    var five = $('#requested_edit').val();
    alert(five);
            $.ajax({
            type: "POST",
            url: "item_edit.php",
             data: "id_edit="+two+"&requested_edit="+five,
            dataType:'json',
            success: function(data){
            console.log(JSON.stringify(data))
                if(data.success == "1"){
                        $(".entry-form1").fadeOut("fast");
                    //setTimeout(function(){ window.location.reload(); }, 1000);        
                }
            }
        });
    });
});
</script>

Item_edit.php

<?php
$mysqli = new mysqli("localhost", "root", "", "app");

if(isset($_POST['id_edit'])) {
$id_edit= $_POST['id_edit'];
$requested_edit= $_POST['requested_edit'];
$sql = $mysqli->query("UPDATE pr_list SET requested='$requested_edit' WHERE id='$id_edit'");

        if($sql){
            echo json_encode(array( "success" => "1"));
        }else{
            echo json_encode(array("success" => "0"));
        }
}
?>

1 个答案:

答案 0 :(得分:1)

1)首先,您没有捕获点击事件,因为 $(&#34; #save_edit&#34;)在一个函数中没有被召唤。因此,您甚至没有将表单发送到服务器。

2)其次,默认情况下表单的工作方式发送数据然后重新加载页面,必须从捕获的事件对象中调用 preventDefault()函数在进行ajax调用之前要防止它。

试试这个:

$(document).ready(function(){

    $("#save_edit").click(function (e) {
        e.preventDefault(); //prevent a page reload

        var two = $('#id_edit').val();
        var five = $('#requested_edit').val();
        alert(five);

        $.ajax({
            type: "POST",
            url: "/item_edit.php",
            data: "id_edit="+two+"&requested_edit="+five,
            dataType:'json',
            success: function(data){

                console.log(JSON.stringify(data));
                 if(data.success == "1"){
                            $(".entry-form1").fadeOut("fast");
                        //setTimeout(function(){ window.location.reload(); }, 1000);        
                    }
                }
    });

    });

});