LINUX.ORG.RU

[jquery][php]Помогите разобраться с $.post

 ,


0

0

index.php:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>

<a href="" onclick="Delete('<?php print $row['id'] ?>')">delete</a>

scripts.js:

function Delete(n) { 
	if(confirm("Удалить запись?")) {
		$.post("./delete.php",{id:n});
		setTimeout("location.reload(true)", 1000);
	}
}

delete.php:


<?php

// ...
// инициализация БД и т.д.
// ...

print "hello!";
if(isset($_POST['id']))
	del_from_table($_POST['id']);


?>

Это дело работает (функция del_from_table отрабатывается), но firebug не показывает ответ («hello!») post-запроса и ругается на jquery на строчку 5252:

// Send the data
5251 try {
5252 xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null );
5253 } catch(e) {
5254 jQuery.handleError(s, xhr, null, e);
5255 // Fire the complete handlers
5256 complete();
5257 }

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

И попутный вопрос - после post-запроса я поставил костыль setTimeout(«location.reload(true)», 1000) чтобы была небольшая задержка перед обновлением страницы, иначе не всегда успевали обработаться запрос и новая страница была неактуальной. Впрочем, даже с задержкой в 1сек не всегда получается. Как тут правильно сделать?

★★★★★

Скажи, ну вот какой смысл удалять аяксом, и при этом рефрешить страницу?
Ты либо скриптом же запись со страницы убирай, либо удаление+редирект обратно в контроллере.

Насчет ошибки с аяксом - создай обработчик - http://api.jquery.com/ajaxError/ - будет хоть понятней, почему ругается

iSage ★★★★
()
Ответ на: комментарий от iSage

>Скажи, ну вот какой смысл удалять аяксом, и при этом рефрешить страницу?

Ты либо скриптом же запись со страницы убирай, либо удаление+редирект обратно в контроллере.


А можно ссылочку какую-нить почитать. А то что-то я совсем себе это плохо представляю.

Насчет ошибки с аяксом - создай обработчик - http://api.jquery.com/ajaxError/ - будет хоть понятней, почему ругается


Спасибо, попробую.

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

Я, если честно, слабо представляю, что можно почитать.
Ну смотри, ты аяксом обращаешься к пхп-скрипту. тот удаляет запись и возвращает результат. После чего ты рефрешиш страницу. Вместо этого, можно было бы просто сделать ссылку на тот же пхп-скрипт, в котором в конце выдать редирект обратно на страницу.
А в варианте с аяксом - ну, обернуть например запись в div с айдишником - номером записи. И при положительном ответе через аякс удалять этот див.

iSage ★★★★
()

блин, как же уныло смотрятся коды при такой теме =(

Zhbert ★★★★★
()
Ответ на: комментарий от iSage

Спасибо, и правда я что-то намудрил :) обойдусь здесь пока без аякса.

Turbid ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.