Php IE&;中的按钮类型值不同;FF

Php IE&;中的按钮类型值不同;FF,php,html,Php,Html,我使用的表单包含如下所示的按钮类型: <form method="post" action=""> <button type=submit value="hello" name="submitform">World</button> </form> 鉴于 Array ( [submitform] => Hello ) in FF(v 3.5) 为什么它显示不同的值。。。 现在我的问题是: 我想在两个浏览器中都使用[submitf

我使用的表单包含如下所示的按钮类型:

<form method="post" action="">
<button type=submit value="hello" name="submitform">World</button>
</form>
鉴于

Array
(
    [submitform] => Hello
)
in FF(v 3.5) 
为什么它显示不同的值。。。 现在我的问题是:

  • 我想在两个浏览器中都使用
    [submitform]=Hello
    ,我不想在

  • 还是
    更好


  • 使用
    按钮
    可以在按钮内显示任意文本或图像。这在
    input
    afaik中是不可能的。该值始终也是按钮文本


    如果IE有这种奇怪的行为,那么您似乎别无选择,无法保持按钮的值和其中的文本相同(这正是
    输入
    所做的)。

    我总是使用
    ,它工作得很好。

    您可以用隐藏的输入字段替换按钮的信息:

    <form method="post" action="">
      <button type="submit">World</button>
      <input type="hidden" name="submitform" value="hello" />
    </form>
    
    
    世界
    
    这是一个browserquirks保存方法

    另一种可能是使用图像,尽管不那么优雅:

    <form method="post" action="">
      <input type="image" src="my_World_image.gif" name="submitform" value="hello" />
    </form>
    
    
    
    优点:您可以有多个提交按钮提交不同的值

    缺点:正如David Dorward提到的,由于错误的实现,即IE,您很可能会再次面临同样的问题

    第三种可能是JavaScript,但是禁用它的用户会遇到各种各样的问题(我警告过你!):

    
    提交你好
    提交世界
    函数do_提交(值){
    document.getElementById('changeme')。value=value;
    document.getElementsByTagName('form')[0].submit();
    }
    
    在MSIE中被严重破坏<代码>不允许标签与值不同


    解决方法是使用
    并给每个人一个唯一的名称。

    为什么这不是您想要的解决方案?与您的问题不同的唯一情况是,当您有多个提交按钮时。在这种情况下,你要么放弃按钮中的“世界”,要么添加一些容易出错的JavaScript,这是行不通的。有些浏览器不发送图像输入值,只发送坐标。@David Dorward:更新了答案。
    <form method="post" action="">
      <input type="image" src="my_World_image.gif" name="submitform" value="hello" />
    </form>
    
    <input type="hidden" name="submitform" value="" id="changeme" />
    <button type="button" onclick="do_submission('hello')">Submit Hello</button>
    <button type="button" onclick="do_submission('world')">Submit World</button>
    
    <script type="text/javascript">
    function do_submission(value) {
      document.getElementById('changeme').value = value;
      document.getElementsByTagName('form')[0].submit();
    }
    </script>