PHP SQL UPDATE在FF和CHROME中工作但在IE中不起作用?

时间:2010-09-01 12:39:04

标签: php sql mysql

以下代码在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>";  
}
?>

3 个答案:

答案 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会改变所采取的行动,否则先前建议的隐藏元素的先前解决方案将会这样做。