【发布时间】:2014-02-25 04:42:17
【问题描述】:
我有一个提交到同一页面的表单提交,以通过 php 删除服务器上的图片。此页面上有多个表单和提交,由于某种原因,它无法使用 Internet Explorer。适用于 Chrome 和 Firefox。点击提交后,页面执行第一个 if (isset($_POST not the correct one.
HTML
<form action="owner.php" method="post" class="registration_form">
<input type="text" name="album_name" />
<input type="text" name="album_code" />
<input type="hidden" name="add_album" value="TRUE" />
<input type="submit" value="Create Album" />
</form>
<form action="owner.php" method="post" class="registration_form">
<input type="hidden" name="albumdelete" value="TRUE" />
<input type="radio" name="album" value="'.$album[$key_Number].'">
<input type="submit" value="Delete">
</form>
<form action="owner.php" method="post">
<input type="hidden" value="true" name="picdelete">
<input type="hidden" name="picture" value="'+d[o].src+'">
<input type="submit" value="Delete This Picture" >
</form>
PHP
if (isset($_POST['add_album'])) {
all of my add album code
**********This is the code it runs*****
} else if (isset($_POST['albumdelete'])) {
}else if (isset($_POST['picdelete'])) {
*********This is the code it should run*********
Works fine on all browsers I test except IE. Tried multiple computers
}
【问题讨论】:
-
您是否有任何嵌套表单/错误终止的表单结束标签?查看是否所有
<form>标签都有对应的</form>标签 -
isset 不可能是问题,因为它的服务器端脚本与您使用的任何客户端无关.. 在您的 if(isset.. 尝试 print_r(@$_POST); 之前,看看你得到了什么.
-
我在任何地方都看不到
name="add_album",仅适用于您的picdelete,因此它将适用于您的else if条件,因为第一个条件没有得到满足。所以,这不是IE thing,而是你的代码;如果这就是你所拥有的。另外,PHP 是服务器端的,而不是客户端的。 -
有趣的是,尽管它得到的所有废话,IE 是(并且一直是)更严格地使用/呈现无效的 HTML
-
@Fred-ii- 我假设
add_album字段是在 OP 的其他 “多种形式并提交” 之一中定义的。逻辑很好,我想说 Scuzzy 在第一条评论中一针见血。 IE 非常不能容忍错误的标记