我有以下代码行:
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,它位于客户端。在Mozilla Docs中阅读有关 onclick 事件的更多信息。
confirm()
返回一个,boolean
真或假。true
当用户单击“是”时,false
当用户单击“否”时。
如果您想将其发送boolean
到 PHP,您需要使用 AJAX 请求,但我认为您不需要它,因为您想停止提交表单。
您的代码中有语法错误,您需要转义内部'
:
echo '<INPUT TYPE="submit" name="delete" value="Delete account"
onClick="return confirm(\'Are you sure you want to delete this account?\')">';
您可以添加一个带有激活 js 标志的小脚本,以检测是否确认删除。例如:
<input type="hidden" name="js_active" value="false">
<script type="text/javascript">
document.getElementsByName('js_active')[0]="true";
</script>
因此,如果公式被传输并且js_active
是true
您可以猜测用户已确认删除。如果是false
javascript 可能已停用,您无法知道删除是否已确认。
由于confirm
将根据用户单击的内容返回真或假,因此您将“知道”用户单击是,当请求到达您的服务器时,因为如果用户单击否,您将阻止提交。
除此之外,除非您在点击时修改请求内容,否则无法找出用户点击了什么,例如,您必须将点击结果作为参数发送到服务器,作为表单的一部分或通过 URL 参数。但请注意,这只会在用户在浏览器中激活 JavaScript 时发送。