und*_*ned 3 php forms safari post
我正在使用PHP在页面上生成10个表单,这些表单将图像作为按钮附加,并将POST隐藏值附加到_blank目标.这在Firefox中运行正常,所有10个按钮都提交并发布到新窗口.在Safari中,只有我点击的第一个按钮才能工作(无论我选择哪一个),之后没有任何按钮(表格)提交并POST到新窗口(!!!什么会继续?)
继承人的代码 -
$id=getId();
echo "<form name=\"clickthrough$id\" action=\"click_through.php\" method=\"POST\" target=\"_blank\"><input type=\"image\" src=\"images/buttons/buynow_a.gif\" name=\"buynow\"/><input type=\"hidden\" name=\"id\" value=\"".$id."\"/></form>";
Run Code Online (Sandbox Code Playgroud)
这里没什么奇怪的 - 这个id实际上是我数据库中一首歌的id,我已经简化了这里的显示 - 但我把它包含在表单名称的末尾只是因为这导致了问题.
所以回顾一下,我最终在页面上有10个立即购买按钮 - 所有按钮都应该发布到PHP脚本.脚本运行正常.然而在safari中,一旦我按下任何立即购买按钮,所有其他人都停止工作(直到我刷新页面)
为什么是这样?
- 这是为按钮生成的最终html
<form name="clickthrough1728" action="click_through.php" method="POST" target="_blank"><input type="image" src="images/buttons/buynow_a.gif" name="buynow"/><input type="hidden" name="id" value="1728"/><input type="hidden" name="location" value="UK"/></form>
<form name="clickthrough1724" action="click_through.php" method="POST" target="_blank"><input type="image" src="images/buttons/buynow_a.gif" name="buynow"/><input type="hidden" name="id" value="1724"/><input type="hidden" name="location" value="UK"/></form>
<form name="clickthrough1718" action="click_through.php" method="POST" target="_blank"><input type="image" src="images/buttons/buynow_a.gif" name="buynow"/><input type="hidden" name="id" value="1718"/><input type="hidden" name="location" value="UK"/></form>
Run Code Online (Sandbox Code Playgroud)
....
我刚刚尝试将其复制到一个新的html文件并进行测试,同样的事情发生了 - 第一次点击将打开一个新窗口,但之后没有按钮会发布表单
使用以下代码进行快速检查就可以了(Mac上的Safari 5)
for($id = 1; $id < 11; $id++) {
echo "<form name=\"clickthrough$id\" action=\"sandbox/_TestServer.php\" method=\"POST\" target=\"_blank\">
<input type=\"image\" src=\"images/buttons/buynow_a.gif\" name=\"buynow\"/>
<input type=\"hidden\" name=\"id\" value=\"".$id."\"/>
</form>";
}
Run Code Online (Sandbox Code Playgroud)
所以它可能是你的$id
.生成html并像Pekka建议的那样显示它
编辑 我不能告诉你safari-windows-land出了什么问题,但是我已经改变了代码,如下所示在VM上测试它(Win XP,Safari5)它的工作原理:
for($id = 1; $id < 11; $id++) {
echo "<form name=\"clickthrough$id\" action=\"_TestServer.php?$id\" method=\"post\" target=\"_blank\">
<input type=\"image\" src=\"add.png\" name=\"buynow\"/>
<input type=\"hidden\" name=\"id\" value=\"".$id."\"/>
</form>";
}
Run Code Online (Sandbox Code Playgroud)
每一种形式都有其"独特"的行动目标?$id
,这种接缝可以解决问题
编辑链接和文件已删除
归档时间: |
|
查看次数: |
2992 次 |
最近记录: |