なぜあなたは持っていますか
if(isset($_POST['deleteReply'])){
?>
javascript関数の前に?$_POST['deleteReply']
varに基づいてjavascriptコードをトリガーすることを期待していましたか?
phpはサーバー側で処理され、HTMLページを出力することに注意する必要があります。javascriptコードは、すべてのphpが実行された後にのみクライアントで実行されます。
より洗練された解決策は、AJAXリクエストを送信する前に確認を求めることです。
また、あなたのajax呼び出しは、あなたが期待していることをしていないようです。PHPに送信する2つのパラメーターを手動で設定しているため、サーバー側で確認を行うと、PHPは使用されなくなります。
Reply ID
パラメータは、削除する応答のようなものである必要があり、処理のために別のphpファイルに要求を送信します。
Marian Zburleaが行っているように、コードを書き直すことをお勧めします。
編集
わかりました。簡単な確認ウィンドウが必要な場合は、次のことを試してください。
<input type="button" id="deleteSomething" value="Delete" />
<script type="text/javascript">
$(document).ready(function(){
$('#deleteSomething').click(function() {
if (!confirm("Are you sure?"))
return false;
$.post('delete.php', "replyID=" + replyID, function(response) {
alert(response);
});
});
});
</script>
編集
複数の削除ボタンがある場合、これを行う最良の方法はreplyID
、関数に渡すパラメーターとしてを保存することです。次のように、PHPの削除ボタンをエコーします。
echo '<input type="button" value="Delete" onclick="deleteSomething(\'' . $replyID . '\')" />';
このようにして、$replyID
はページのHTMLに保存され、定義する必要のある関数に渡されdeleteSomething(replyID)
ます(できればhead
、JQuery libの後のドキュメントで)。
<script type="text/javascript">
function deleteSomething(replyID)
{
if (!confirm("Are you sure?"))
return false;
$.post('deleteProcessing.php', "replyID=" + replyID, function(response) {
alert(response);
});
}
</script>
重複するIDを生成しないようにボタンからを削除しました。以前のように匿名関数をIDにバインドする代わりにID
、イベントで関数呼び出しを追加したため、これらは不要になりました。onclick