ここで問題になっているのは、ページをリフレッシュするときにフォームが再送信されることです。今私は、私が上で述べた問題のためにオンラインでたくさんの答えがあることを知っています。しかし、私の問題では、フォームがリダイレクトされず、そのセクションだけが更新されるように、フォームを送信するためにajaxを使用しています。私はページをリダイレクトしたくないので、post/redirect/getメソッドを使うことはできません。AJAXでリロード時にフォームを再送信しないでください。警告:ヘッダーを変更できません。FIX
これは私のコードです:
HTML:
<form method="post" onsubmit="return submitdata();">
<textarea maxlength="3000" id="profile-post" name="profile-post" placeholder="Write a post..." rows="3" cols="65" required></textarea>
<input type="submit" value="Post">
</form>
スクリプト:
function submitdata()
{
var post=document.getElementById("profile-post");
$.ajax({
type: 'post',
url: 'page.php',
data: {
post:post
}
})
};
はPHP:
if(isset($_POST['profile-post'])){
$post = $_POST['profile-post'];
mysqli_query($dbc,"INSERT INTO make_post (post, time, date, user_id) VALUES ('$post', CURTIME(), CURDATE(), '$id_profile')");
}
}
オンラインでの検索で見つけられない、希望の結果を得ることができる他の方法はありますか?
ありがとうございました。
'type =" submit "を' type = "button" ' – JYoThI
^に変更し、' submitdata() '呼び出しをそのボタンのonclickアクションに移動するか、フォームをハイジャックして送信時にfalseを返すようにします。 – CD001
私はそれを得ることはありません、問題は何ですか?私はこのページをどのように再読み込みするとフォームを(再)提出するのかわかりません。 – jeroen