用jquery和php更新数据库

时间:2016-07-14 09:49:17

标签: javascript php jquery mysql

我尝试使用jquery更新/编辑,然后在php的帮助下将其保存到数据库

问题是 我无法将新数据传递给php php没有从jquery接收数据 < / p>

这是我的表单

<form method="POST" name="postForm" action="update.php">
<div id="edit">
First name:<input type="text" id="firstname" value="<?php echo $row['firstname']; ?>">
</div>
</form>
<button id="button">Edit</button>

这是我的 jquery

的脚本
jQuery("#edit").dialog({
    modal: true,
    resizable: false,
    draggable: false,
    autoOpen: false,
    width: 400,
    buttons: [
        {
            text: "Ok",
            click: function() {
                jQuery.ajax({
                    type: "POST",
                    dataType: "json",
                    url: "update.php",
                    async:true,
                    data: { dataToUpdate: jQuery('#edit').attr('value') }
                });
            }
        },
        {
            text: "Cancel",
            click: function() {
                jQuery(this).dialog( "close" );
            }
        }
    ]
});

// Link to open the dialog
jQuery("#button").click(function(event) {
    jQuery("#edit").dialog("open");
    event.preventDefault();
});

这是我的 PHP

  $id = $_GET['id']; // i dont know if i should put it or not to identify the info i want to edit
  $firstname = $_POST['firstname'];

  $sql = "UPDATE info SET
        firstname='$firstname' WHERE id=$id";

        $result = mysql_query($sql);

        echo json_encode($result);

4 个答案:

答案 0 :(得分:1)

您的问题出在此处:data: { dataToUpdate: jQuery('#edit').attr('value') }

正确:data: { firstname: $('#firstname').val() }

现在它应该可行

答案 1 :(得分:0)

您错过了表单name标记中的input属性,这就是为什么PHP没有收到变量...

<input type="text" id="firstname" name="firstname" value="<?php echo $row['firstname']; ?>">

或者确保使用JQuery正确传递值。

答案 2 :(得分:0)

jQuery('#edit').attr('value') } 

它的div不包含value属性,请使用此选择器:

jQuery('#edit').attr('firstname') 

答案 3 :(得分:0)

我得到了正确的答案就是我改变了

data: { dataToUpdate: jQuery('#edit').attr('value') }
jQuery脚本

data: { "firsname":jQuery("#firstname").val()}