Если ваш PHP-скрипт удаляет сообщение, он ничего не возвращает.
Мой плохой, он не отвечает на настоящий вопрос, но все еще является ошибкой;)
На самом деле, кажется, что PHP-сессия и AJAX иногда не очень хорошо работают вместе.
Это означает, что if ($post->user_id == $user_id)
никогда не будет проверять, следовательно, проблема без удаления.
2 способа увидеть это:
- Log
$user_id
и посмотретьесли это не null
- Попробуйте отправить
$_SESSION['user_id']
со своим постом ajax и проверьте его.Но не в производстве, по соображениям безопасности.
1-
Ваш PHP должен что-то возвращать в в каждом случае (по крайней мере, когда вы ищете ошибку, подобную вашей реальной ситуации).
<?php
[...]
try {
if ($post->user_id == $user_id) {
[...]
echo 'true';
}
else {throw new Exception('false');}
}
catch (Exception $e) {
echo 'false';
}
?>
2-
jQuery удобно использовать для AJAX по многим причинам,Например, он обрабатывает многие браузеры и выполняет проверки для вас, но, кроме того, вы можете обрабатывать успех и ошибку в одной и той же .ajax()
/ .post()
/ .get()
function \ o /
$('.post_delete').bind('click', function(event) {
var num = $(this).data('short'); // If that's where your data is... Fair enough.
if (confirm("Delete This Post? (http://lala.in/" + num + ")")) {
$.post("delete/post.php", {short: num}, // Relative is nice :D
function(data){
if (data == 'false') {
alert('Deleting Failed!');
}else{
alert("Post Has Been Deleted!");
// Your redirection here ?
}
});
}
});
3-
Если вам нужно отправить данные из формы в скрипт, а затем выполнить перенаправление, Я не буду рекомендовать AJAX, который обычно используется, чтобы не покидать страницу !Поэтому вы должны сделать то, что в вашем комментарии, форму PHP-скрипта, который, очевидно, что-то удалит, а затем сделает перенаправление.