我遇到的问题是我在一个表单中有多个提交输入。这些提交输入中的每一个都有不同的值,我更愿意将它们保留为提交。
每当用户按下 Enter 时,就好像按下了最顶层的提交输入,因此它会导致代码检查单击了哪个输入的问题。
有没有办法让 PHP 确定输入是否被点击,或者只是当用户按下 Enter 键时选择的输入?
最佳答案
如果您的 HTML 结构正确,您可以识别使用了哪个按钮
<input type="submit" name="action" value="Edit">
<input type="submit" name="action" value="Preview">
<input type="submit" name="action" value="Post">
$_POST
数组(或 $_GET/$_REQUEST
)将包含键“action”和激活按钮的值(无论是否点击)。
现在,“点击”显然是一种客户端行为 - 如果您想区分点击和按键,您需要在表单中添加一些脚本来帮助确定。
编辑
或者,您可以“偷偷摸摸”地使用隐藏提交,该提交应正确识别提交的按键,但这可能会对可访问性产生一些重大影响。
<?php
if ( 'POST' == $_SERVER['REQUEST_METHOD'] )
{
echo '<pre>';
print_r( $_POST );
echo '</pre>';
}
?>
<form method="post">
<input type="text" name="test" value="Hello World">
<input type="submit" name="action" value="None" style="display: none">
<input type="submit" name="action" value="Edit">
<input type="submit" name="action" value="Preview">
<input type="submit" name="action" value="Post">
</form>
关于php - PHP 如何确定用户是否按下了回车键或提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795132/