我有一系列带有表单的php页面,用户应该做出一些选择。非常基本。
<form action='/nextpage.php' method='post' name='main' >
<input name='var1' type='hidden' value='xyz' />
<input name='var2' type='hidden' value='abc' />
<input name='direction' type='submit' value='North' />
<input name='direction' type='submit' value='East' />
<input name='direction' type='submit' value='South' />
<input name='direction' type='submit' value='West' />
<input name='var3' type='submit' value='NoDirection' onClick=\"document.forms.main.action='/endpage.php'; document.forms.main.submit();\" />
</form>
提交此表单并指示方向后,它将很好地与nextpage.php一致,我可以按预期阅读$_POST
,var1
和var2
变量的direction
。就像我说的非常基本。
但如果使用NoDirection1
提交此表单,则会提交endpage.php
。在Chroome中,IE和FF $_POST['var3']
给了我NoDirection,就像它应该......
但在Safari中$_POST['var3']
也是空的
if (isset($_POST['var3'])) echo $_POST['var3'];
else echo "Help";
在Safari中回应“帮助”而不是“NoDirection”。
有什么想法吗? onclick
或onClick
没有任何区别。 onClick=\"javascript:document.forms.
等也没有做到这一点。
我找到了解决方法,但我想了解Safari和其他浏览器之间的区别。
解决方法:只需将var3
添加为隐藏变量,然后在nextpage.php
中取消设置它就可以了。
<input name='var3' type='hidden' value='NoDirection'>
已解决似乎是双重提交或Safari不喜欢的内容。在onclick之后我删除了下面的代码。它现在工作正常。最好的3天今年花费令人费解: - )
document.forms.main.submit();