Данные записываются и не синхронизируются после POST - PullRequest
0 голосов
/ 09 сентября 2011

Я вызываю представление после действия AJAX POST. Но я загружаю представление и вызываю данные базы данных не синхронно с записываемыми данными. Когда я загружаю страницу, я заглядываю в базу данных и вижу там данные, но они не отображаются на странице. (Я пробовал сеансы и получил ту же проблему). Чтобы представление действительно отображало данные из базы данных, мне нужно обновить страницу. То же самое и с сессиями, мне нужно обновить страницу для отображения данных сессий. Есть ли общая ссылка на этот вид проблемы? Я читал о POSTBACK, это то, что мне нужно изучить дальше? По сути, это странная проблема с синхронизацией, когда данные не генерируются, пока я не обновлю страницу и не перезагрузлю ее.

1 Ответ

2 голосов
/ 09 сентября 2011

jQuery-вызов ajax является асинхронным по умолчанию. Javascript код продолжается, не дожидаясь возврата с сервера.

Итак, давайте посмотрим на:

 $.post('source.php',function(valueFromPHP){
    alert(valueFromPHP)
 });
 alert('Hello world')

В предыдущем примере * сначала сообщается Hello Wold, затем значение из php.

Если вы хотите вставить возвращаемое значение из php на вашу страницу, вам нужно поместить весь свой код в функцию sucess:

 $.post('source.php',function(valueFromPHP){
    alert(valueFromPHP)
    alert('Hello world')
 });

Во втором примере сначала возвращается значение, возвращаемое из PHP, затем Hello world

Так что, если вы хотите визуализировать данные, полученные от php, убедитесь, что вы поместили свой код в функцию успеха. Обычно именно здесь мы получаем ошибку при работе с jQuery ajax.

Дайте мне знать, если это поможет!

...