次のコード行があります。
echo '<INPUT TYPE="submit" name="delete" value="Delete account" onClick="return confirm('Are you sure you want to delete this account?')">';
ユーザーが「はい」と入力したか「いいえ」と入力したかどうかをどのように判断できますか?
次のコード行があります。
echo '<INPUT TYPE="submit" name="delete" value="Delete account" onClick="return confirm('Are you sure you want to delete this account?')">';
ユーザーが「はい」と入力したか「いいえ」と入力したかどうかをどのように判断できますか?
PHPはサーバー側であり、クライアントでは何もしません。クライアントをクリックするので、PHPはこれを処理できません。
onclickイベントは、クライアント側にあるJavaScriptです。MozillaDocsのonclickイベントの詳細をご覧ください。
は、trueまたはfalseをconfirm()
返します。ユーザーが「はい」をクリックしたとき、ユーザーが「いいえ」をクリックしたとき。boolean
true
false
PHPに送信する場合はboolean
、AJAXリクエストを使用する必要がありますが、フォームの送信を停止したいので、AJAXリクエストは必要ないと思います。
コードに構文エラーがあり、内部をエスケープする必要があります'
:
echo '<INPUT TYPE="submit" name="delete" value="Delete account"
onClick="return confirm(\'Are you sure you want to delete this account?\')">';
削除が確認されたかどうかを検出するフラグをアクティブ化したjsでaddsを使用して小さなスクリプトを追加できます。例えば:
<input type="hidden" name="js_active" value="false">
<script type="text/javascript">
document.getElementsByName('js_active')[0]="true";
</script>
したがって、フォーミュラが送信さjs_active
れtrue
、ユーザーが削除を確認したと推測できます。javascriptの場合はfalse
非アクティブ化されている可能性があり、削除が確認されたかどうかはわかりません。
ユーザーがクリックした内容に応じてtrueまたはfalseが返されるためconfirm
、ユーザーが[いいえ]をクリックすると送信が妨げられるため、リクエストがサーバーに到達したときに、ユーザーが[はい]をクリックしたことが「わかります」。
それとは別に、クリック時にリクエストコンテンツを変更しない限り、ユーザーがクリックしたものを見つける方法はありません。たとえば、フォームの一部として、またはフォームの一部として、クリックの結果をパラメータとしてサーバーに送信する必要があります。 URLパラメータを介して。ただし、これは、ユーザーがブラウザでJavaScriptをアクティブにしている場合にのみ送信されることに注意してください。