表单中的图像提交按钮

6

我有一个表单,其中提交按钮以图像形式呈现。当用户点击图像按钮时,图像按钮应该扮演提交按钮的角色。

代码示例:

<form action="page.php" method="POST">
   <input type="image" name="btn_opentextbox" src="image.png" value="Submit" />
</form>

处理提交:
if($_POST['btn_opentextbox'])
{
    //do something
}

令人惊讶的是,上述代码过去在Firefox中完美运行。然而,昨天我更新了Firefox后,它根本不起作用。我点击按钮,页面刷新,什么也没有发生。该代码在IE中也无法工作。

注意:它在Chrome中可以工作。

我希望它可以在Firefox、IE等浏览器中工作。

有什么建议吗?

6个回答

6

您可以添加一个隐藏字段

<input type="hidden" name="action" value="Submit Form">

在 PHP 中,您可以这样做。
if($_POST['action'] == "Submit Form"){
 do something 
}

希望这可以帮助您。

聪明的人。我会尝试并告诉你结果。 - user311509
й¶ЦеЕИж£АжЯ•жХ∞зїДеЕГзі†жШѓеР¶isset()пЉМдї•йБњеЕНеЗЇзО∞E_NOTICEжґИжБѓгАВ - MrWhite

5

3

关于图片提交按钮

PHP代码如下:

    if(isset($_POST['btn_opentextbox_X']) || isset($_POST['btn_opentextbox_Y']))
{
    //do something
}

3
好的php代码应该是这样的:
<input type='image' src='../images/blanc.gif' width='596' height='35'     onFocus='form.submit' name='btn_opentextbox'/>


    if ($_POST["btn_opentextbox_x"]) && ($_POST["btn_opentextbox_y"])
   {

......
   }

“好的 PHP 代码”?目前来看,当表单未通过图像提交按钮提交时,您的代码将生成一个“E_NOTICE”消息。您应该检查数组元素是否已设置 isset() - MrWhite
同时,$_POST["btn_opentextbox_x"] 可能合法地包含值 0,因此会被评估为 false。 - MrWhite

2
检查 btn_opentextbox_x 或者 btn_opentextbox_y。实际上是 . 而不是 _,但 PHP 对其进行了修改。
一些浏览器未能发送服务器端图像映射的值,只有坐标。
而且似乎您忘记了 alt 属性。
或者,使用实际的提交按钮代替图像映射:
<button type="submit" name="btn_opentextbox" value="submit"><img src="image.png" alt="Submit"></button>

请注意,一些IE版本在提交表单时会发送HTML内容而不是值。


0

您的表单中有多个按钮,需要知道哪个按钮提交了表单吗? 如果只有一个提交按钮,我建议使用以下代码:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // process form submission
    header('Location: page.php?result=success');
}

这样,您就可以确定表单是否已提交,并避免在表单提交后用户点击重新加载按钮时出现重复提交。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接