Ajax 和编码帮助 - 我通过 php 向数据库提交更新,它可以工作 - 但我的页面更新没有


Ajax and coding help - i submit updates via php to a database, it works - but my on page update does not

所以我有这个形式:

echo '<form id="target" action="edit-property.php?Property='.$property.'" method="post">';
echo "Address: ".'<input type="text" name="address" value="'.$propAddress.'" />';
echo '<input type="submit" value="Update">';
echo "</form>";

提交时,我使用此函数更改了数据库条目(我仍在学习从 mysql 到 mysqli 的更改,所以我不确定我是否做对了,而且我不完全知道如何在更新表时绑定参数,但这不是我的问题)

$property = $_GET['Property']
if (isset($_POST['address']) && !empty($_POST['address'])) {
$mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
    if (!$mysqli) {
        die('There was a problem connecting to the database.');
    }
    else {
        $address = mysqli_real_escape_string($mysqli, $_POST['address']);
        $id = intval($property);
        if($id) {
        $query =("UPDATE Properties
            SET Address = '$address'
            WHERE Id = '$id'");
            if (mysql_query($query)){
                echo '1';
                exit;
            }
            else {
                echo '0';
                exit;
            }
            $mysqli->close(); 
        }
    }
}

好吧。所以这工作正常(如果我在这里做了一些愚蠢的事情,请随时纠正我,我发现我通过批评学习得最好,堆栈溢出帮助我改进了很多!

但这是我的困境。我想在页面上更新,而不必刷新页面。

遇到了下面的代码,对其进行了修改以适合我,不幸的是它不起作用。恐怕我不知道为什么:

<script>
var id = <?=$id?>;
// when the DOM is ready
$(document).ready(function() {
    $('#target').submit(function(e) {
        // prevent normal, boring, tedious form submission
        e.preventDefault();
        // send it to the server out-of-band with XHR
        $.post('edit-property.php?Property=' + id, function() {
            data: $(this).val(),
            success: function(resp) { 
                if(resp == '1') {
                    alert('Saved successfully');
                } else {
                    alert('Oops, something went wrong!');
                }
            }
        });
    });
});
</script>

不幸的是,这是一个谜 - 无法让它工作。我可能做错了什么?

谢谢:)

我认为您误解了此调用的语法,并且已将一些用于$.post的参数包装到您可能希望用于完成的多余"函数"中。

$.post('edit-property.php?Property=' + id, 
            /*function() {*/
            data: $(this).val(),
            success: function(resp) { 
                if(resp == '1') {
                    alert('Saved successfully');
                } else {
                    alert('Oops, something went wrong!');
                }
            /*}*/
        });