0

次のコード行があります。

    echo '<INPUT TYPE="submit" name="delete" value="Delete account" onClick="return confirm('Are you sure you want to delete this account?')">';

ユーザーが「はい」と入力したか「いいえ」と入力したかどうかをどのように判断できますか?

4

3 に答える 3

2

PHPはサーバー側であり、クライアントでは何もしません。クライアントをクリックするので、PHPはこれを処理できません。

onclickイベントは、クライアント側にあるJavaScriptです。MozillaDocsのonclickイベントの詳細をご覧ください

は、trueまたはfalseをconfirm()返します。ユーザーが「はい」をクリックしたとき、ユーザーが「いいえ」をクリックしたとき。booleantruefalse

PHPに送信する場合はboolean、AJAXリクエストを使用する必要がありますが、フォームの送信を停止したいので、AJAXリクエストは必要ないと思います。

于 2012-09-02T14:24:13.207 に答える
1

コードに構文エラーがあり、内部をエスケープする必要があります'

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_activetrue、ユーザーが削除を確認したと推測できます。javascriptの場合はfalse非アクティブ化されている可能性があり、削除が確認されたかどうかはわかりません。

于 2012-09-02T14:22:29.980 に答える
0

ユーザーがクリックした内容に応じてtrueまたはfalseが返されるためconfirm、ユーザーが[いいえ]をクリックすると送信が妨げられるため、リクエストがサーバーに到達したときに、ユーザーが[はい]をクリックしたことが「わかります」。

それとは別に、クリック時にリクエストコンテンツを変更しない限り、ユーザーがクリックしたものを見つける方法はありません。たとえば、フォームの一部として、またはフォームの一部として、クリックの結果をパラメータとしてサーバーに送信する必要があります。 URLパラメータを介して。ただし、これは、ユーザーがブラウザでJavaScriptをアクティブにしている場合にのみ送信されることに注意してください。

于 2012-09-02T14:23:37.290 に答える