PHP SQL UPDATE在FF和CHROME中工作,但不在IE中?
下面的代码在FF和CHROME中完美工作,但不在IE中。请帮忙。我已经评论了我的美食功能,因为我认为他们可能会影响它,但它仍然是一样的......在IE中什么都没有。 非常感谢您的帮助。PHP SQL UPDATE在FF和CHROME中工作,但不在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>";
}
?>
丹
你应该张贴您的前端,没有后端(因为它几乎不依赖于浏览器)。
您的HTML可能无效。
编辑:
是的,IE不会为图像类型的输入值。它仅发送y(field_name_x,field_name_y)并完全丢弃原始的“值”属性。
请尝试使用隐藏输入。
看来input type='image'
从IE中使用时不会发送值。你需要另一个隐藏字段:
<input type='hidden' name='updatebucket' value='updatebucket' />
<input type='image' src='images/tick.png' />
这样一来,updatebucket
参数将被发送到服务器,无论使用哪种浏览器。
这里的假设是所有的浏览器都以同样的方式处理HTML表单(而且他们不这样做)。这就是为什么我保持Eric Lawrence出色的Fiddler的原因 - 它可以区分两个HTTP请求,所以您会立即看到浏览器之间的差异。
谢谢Piskvor。这非常好! :) – Dan 2010-09-01 13:03:08
另一种方法是,以检查$_POST[{image-element-name}_x}]
(在这种情况下$_POST['updatebucket_x']
。所有的浏览器将发送图像元素的x/y坐标为updatebucket.x
& updatebucket.y
,和PHP静默(和令人沮丧)改变updatebucket.x
到updatebucket_x
。然后再次,你只需要点击不同的输入类型= submit/type =图片元素就会改变所采取的动作,否则之前提出的隐藏元素的解决方案会如前面所述的那样做。
MySQL与浏览器无关;浏览器=客户端,PHP + MySQL =服务器 – 2010-09-01 12:42:29
对于不同的浏览器,后端代码不会以不同的方式进行处理,因为这是p漫游在服务器上。发布您的HTML – 2010-09-01 12:42:41
@Daniel Hanly:但令人惊讶的是,在表单处理方面有足够的差别,即不同的浏览器将从同一表单发送不同的数据集,这看起来似乎是输入相同,但输出不是'吨。 – Piskvor 2010-09-01 13:15:47