приведенный ниже код отлично работает в 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>";
}
?>
Dan
Вы должны опубликовать свой внешний интерфейс, а не back-end (поскольку он в значительной степени не зависит от браузера).
Возможно, ваш HTML недопустим.
Edit:
Да, IE не принимает значения для типа ввода изображения. Он отправляет только x и y (field_name_x, field_name_y) и полностью отбрасывает исходный атрибут "значение".
Попробуйте использовать скрытый ввод.
Альтернативой может быть проверка на $_POST[{image-element-name}_x}]
(в данном случае $_POST['updatebucket_x']
). Все браузеры отправят координаты x/y элемента изображения как updatebucket.x
и updatebucket.y
, а PHP молча (и разочаровывает) изменяет значение updatebucket.x
на updatebucket_x
. И снова вам нужно только щелкнуть по другому типу ввода = submit/type = элементы изображения изменили бы действие, в противном случае предыдущее решение скрытого элемента, как было предложено ранее, сделало бы.
Кажется, что input type='image'
не отправляет значение при использовании из IE. Вам понадобится другое скрытое поле:
<input type='hidden' name='updatebucket' value='updatebucket' />
<input type='image' src='images/tick.png' />
Таким образом, параметр updatebucket
будет размещен на сервере независимо от используемого браузера.
Предположение здесь состояло в том, что все браузеры обрабатывают HTML-формы одинаково (а их нет); поэтому я сохраняю Eric Lawrence превосходным Fiddler вокруг - он может различать два HTTP-запроса, поэтому вы сразу увидите разницу между браузерами.