以下代码在FF和CHROME中完美运行,但在IE中则不行。请帮忙。我已经评论了我的santize函数,因为我认为它们可能会影响它,但它仍然是相同的....在IE中没有。 提前感谢您的任何帮助。
<?php
//IF UPDATE BUCKET CHANGE STATUS...
if(isset($_POST['updatebucket'])){
$complete = $_POST["complete"];
$bucketid = $_POST["bucketid"];
//$complete = sanitizeone($_POST["complete"], "plain");
//$complete = strip_word_html($complete);
//$bucketid = sanitizeone($_POST["bucketid"], "plain");
//$bucketid = strip_word_html($bucketid);
if ($complete=="1")
$complete = "0";
else
$complete = "1";
$updatebucket = "UPDATE membersbuckets SET complete = '$complete' WHERE userid = '$userid' AND bucketid = '$bucketid'";
mysql_query($updatebucket);
}
?>
和前端......
<? if ($complete=="1") {
echo "<form action='' method='post' name='updatebucket'><input name='complete' type='hidden' value=" .$complete. " /><input name='userid' type='hidden' value=" .$userid. " /><input name='bucketid' type='hidden' value=" .$bucketid. " /><input type='image' name='updatebucket' value='updatebucket' src='images/tick.png' /></form>";
}else{
echo "<form action='' method='post' name='updatebucket'><input name='complete' type='hidden' value=" .$complete. " /><input name='userid' type='hidden' value=" .$userid. " /><input name='bucketid' type='hidden' value=" .$bucketid. " /><input type='image' name='updatebucket' value='updatebucket' src='images/cross.png' /></form>";
}
?>
丹
答案 0 :(得分:2)
你应该发布你的前端,而不是后端(因为它几乎不依赖于浏览器)。
您的HTML可能无效。
编辑:
是的,IE对输入的图像类型没有取值。它只发送x&amp; y(field_name_x,field_name_y)并完全丢弃原始的“value”属性。
尝试使用隐藏的输入。
答案 1 :(得分:0)
似乎input type='image'
在IE中使用时不会发送值。你需要另一个隐藏的领域:
<input type='hidden' name='updatebucket' value='updatebucket' />
<input type='image' src='images/tick.png' />
这样,updatebucket
参数将被发布到服务器,无论使用何种浏览器。
这里假设所有浏览器都以相同的方式处理HTML表单(并且它们没有);这就是为什么我保持Eric Lawrence的优秀Fiddler - 它可以区分两个HTTP请求,所以你会立即看到浏览器之间的差异。
答案 2 :(得分:0)
另一种方法是检查$_POST[{image-element-name}_x}]
(在这种情况下为$_POST['updatebucket_x']
。所有浏览器都会将图像元素的x / y坐标发送为updatebucket.x
&amp; {{1}并且,PHP默默地(令人沮丧地)将updatebucket.y
改为updatebucket.x
。再次,你只需要点击不同的输入类型= submit / type = image elements会改变所采取的行动,否则先前建议的隐藏元素的先前解决方案将会这样做。