だから私はこのフォームを持っています:
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>
残念ながらミステリーです - 動作させることはできません。私は何が間違っているのでしょうか?
ありがとうございました :)