2014-01-03 5 views
0

Так что этот код работает в каждом браузере, кроме Internet Explorer. Как я могу заставить его работать в IE?Удалить не работает только в Internet Explorer

// HTML код

<form action="postdel.php?id=<?php echo $id; ?>" method="POST" onsubmit="return confirm('Confirm: DELETE <?php echo $productname; ?>?');"> 

<input type="hidden" value="delete" title='Delete Item'> 
<button style='height:33px; width:50px'> 
     <img src="../css/images/delete_25.png" /> 
</button> 
</form> 

//postdel.php

ob_start(); 
include("../conn.php"); 

$stmt = $mysqli->prepare("DELETE FROM specials WHERE id = ?"); 
$stmt->bind_param('i', $_GET['id']); 
$stmt->execute(); 
$stmt->close(); 

header('Location: foo.php'); 

$id просто случайное число. Я предполагаю, что проблема связана с всплывающим окном JavaScript для подтверждения удаления. Потому что, когда вы нажимаете OK, он принимает, удаляет диалоговое окно и возвращается на ту же страницу. Все остальные браузеры подтверждают это и переходят на страницу foo.

+1

Какая версия IE? –

+0

Итак, форма отправляется, а удаление происходит, но перенаправление 'header()' не работает в IE или не отправляет форму в IE или что именно происходит? – adeneo

+0

прочитал снизу, я объяснил это. Он не удаляет список объектов MySQL, он ничего не делает, кроме как удалить диалоговое окно подтверждения –

ответ

0

во всяком случае, я не знаю, почему это не работает. Я просто сделал это как свое решение, надеюсь, это поможет кому-то другому.

Я просто полностью избавился от формы и просто использовал кнопку для выполнения команды delete.

// HTML

<button onclick="location.href='postdel.php?id=<?php echo $id; ?>'" style='height:33px; width:50px;'><img src="../css/images/delete_25.png" border="0"/></button> 

// PHP

ob_start(); 
include("../conn.php"); 

$stmt = $mysqli->prepare("DELETE FROM specials WHERE id = ?"); 
$stmt->bind_param('i', $_GET['id']); 
$stmt->execute(); 
$stmt->close(); 

header('Location: foo.php'); 
+0

Причина, по которой это работает, вероятно, состоит в том, что IE кэшировал вашу страницу и сохранял один и тот же URL-адрес, чтобы он отображал одну и ту же страницу. Просто догадка. – Alfabravo

0

Вы могли бы попытаться дать форме имя, используя имя атрибута, который применяется в виде:

name="deleteform" 

сделает следующее:

form action="postdel.php?id=<?php echo $id; ?>" method="POST" onsubmit="return confirm('Confirm: DELETE <?php echo $productname; ?>?');" name="deleteform"> 
+0

И это как-то устранит проблему? –

+0

Я думаю, что IE может понадобиться для того, чтобы фактически угадать форму, но я могу ошибаться. –

+0

nope, такой же предмет. –

Смежные вопросы