表单中的图像提交按钮

时间:2011-11-10 08:56:53

标签: php html web-applications

我有一个表单,其中包含一个Image形式的Submit按钮。当用户单击图像按钮时,图像按钮应扮演提交按钮的角色。

代码示例:

<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 个答案:

答案 0 :(得分:6)

您可以添加隐藏字段

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

在php中你可以做到这一点

if($_POST['action'] == "Submit Form"){
 do something 
}
希望这有帮助。

答案 1 :(得分:3)

您应该使用普通submit - 按钮和use CSS to replace the button's look with an image。这应该适用于所有浏览器。

答案 2 :(得分:3)

用于图片提交按钮

php代码

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

答案 3 :(得分: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"])
   {

......
   }

答案 4 :(得分:2)

请检查btn_opentextbox_xbtn_opentextbox_y。 (它实际上是.而不是_,但PHP会破坏它。)

某些浏览器无法为服务器端图像映射发送,只是坐标。

您似乎忘记了alt属性。


或者,使用实际的提交按钮而不是图像映射:

<button type="submit" name="btn_opentextbox" value="submit"><img src="image.png" alt="Submit"></button>

...但请注意,某些版本的IE会在提交时发送HTML内容而不是值。

答案 5 :(得分:0)

您是否在该表单中有多个按钮,并且需要知道表单已提交? 如果只有一个提交按钮,我建议使用以下代码:

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

通过这种方式,您可以确定表单是否已提交,如果用户在提交表单后点击重新加载按钮,也可以避免双重提交。