PHP SQL UPDATE работает в FF и CHROME, но не в IE?

0

приведенный ниже код отлично работает в 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

  • 2
    MySQL не имеет ничего общего с браузером; браузеры = клиент, PHP + MySQL = сервер
  • 1
    Код сервера не будет обрабатываться по-разному для разных браузеров, так как он обрабатывается на сервере. Разместите свой HTML
Показать ещё 1 комментарий
Теги:

3 ответа

2
Лучший ответ

Вы должны опубликовать свой внешний интерфейс, а не back-end (поскольку он в значительной степени не зависит от браузера).

Возможно, ваш HTML недопустим.

Edit:

Да, IE не принимает значения для типа ввода изображения. Он отправляет только x и y (field_name_x, field_name_y) и полностью отбрасывает исходный атрибут "значение".

Попробуйте использовать скрытый ввод.

  • 0
    Так что поместите name = 'updatebucket' value = 'updatebucket' в другой скрытый ввод и просто получите изображение как «submit»? или мне нужно избавиться от изображения как кнопки отправки все вместе? Благодарю.
  • 0
    просто добавьте скрытое поле, сохраните изображение, но только для отправки :)
Показать ещё 1 комментарий
0

Альтернативой может быть проверка на $_POST[{image-element-name}_x}] (в данном случае $_POST['updatebucket_x']). Все браузеры отправят координаты x/y элемента изображения как updatebucket.x и updatebucket.y, а PHP молча (и разочаровывает) изменяет значение updatebucket.x на updatebucket_x. И снова вам нужно только щелкнуть по другому типу ввода = submit/type = элементы изображения изменили бы действие, в противном случае предыдущее решение скрытого элемента, как было предложено ранее, сделало бы.

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-запроса, поэтому вы сразу увидите разницу между браузерами.

  • 0
    Спасибо Писквор. Это отлично! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню