0

だから私はこのフォームを持っています:

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>

残念ながらミステリーです - 動作させることはできません。私は何が間違っているのでしょうか?

ありがとうございました :)

4

1 に答える 1

2

この呼び出しの構文を誤解していて、目的のパラメーターの一部を、$.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!');
                }
            /*}*/
        });
于 2013-02-03T09:28:00.707 に答える