我有一个表单,其中包含一个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等中使用。
有什么建议吗?
答案 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_x
或btn_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');
}
通过这种方式,您可以确定表单是否已提交,如果用户在提交表单后点击重新加载按钮,也可以避免双重提交。