2015-11-01 9 views
0

Ниже я хочу подтвердить, прежде чем удалять запись, проблема заключается в том, выбираю ли я ok или отменяет из окна подтверждения запись удаляется на обоих, во-вторых, я не перенаправляюсь на нужную мне страницу после удаления.Подтверждение перед удалением

<script type="text/javascript"> 
function ConfirmDelete(){ 
if (confirm("Delete Account?")){ 
     window.location='mains.php'; 
} 
else { 
    // do nothing 
} 
} 
</script> 

if(isset($_POST['submit'])){ 
$que=$db->prepare("DELETE FROM blogs WHERE id = :id"); 
$que->execute(array(':id'=>$postId)); 
} 

<form method="POST"> 
<input type="submit" name="submit" value="Delete" onclick="ConfirmDelete()" /> 
</form> 
+0

Вы можете AJAXify процесс, а затем JS будет намного легче сделать. – Script47

ответ

0

Обычно я добавлял «действие» в свою форму, а затем возвращал false; в моей JavaScript:

<form action="mains.php" method="POST" onclick="ConfirmDelete()"> 
<input type="submit" name="submit" value="Delete" /> 
</form> 

Тогда ЯШ:

function ConfirmDelete() { 
    if (confirm("Delete account?")) { 
     return true; 
    } 
    return false; 
} 
+0

Пожалуйста, проверьте ваш ответ, потому что он не работает. –

2

так, в основном кнопку delete бы отправить форму мы можем изменить HTML код формы для

<form action="mains.php" method="POST" onsubmit="return ConfirmDelete()"> 
    <input type="submit" name="submit" value="Delete" /> 
</form> 

и ConfirmDelete функция:

function ConfirmDelete(){ 
    if (confirm("Delete Account?")){ 
      return true; 
    } 
    else { 
     alert('sorry'); 
     return false; 
    } 
} 
+0

теперь даже при удалении записи не удаляется –

+0

откуда вы получаете '$ postId'? и попробуйте повторить '$ postId' после' if (isset ($ _ POST ['submit'])) {' –

+0

с этим ничего не получилось, потому что' php' в одиночку без подтверждения javascript работает хорошо, –