JQuery AJAX-запросы - PullRequest
       1

JQuery AJAX-запросы

0 голосов
/ 01 декабря 2010

Привет, я новичок в jquery, запросы AJAX. Вот мой HTML-код в edit_page.php

                    <td>Action: </td>
                               <td class="notselected">
                                    <div id="action_response"></div>
                                    <select name="action_db1" id=<?php  echo $sel_page['Concession']; ?> onchange="updateaction(this);" >
                                        <option value=""></option>
                                        <option value="move">Move</option>
                                        <option value="copy">Copy</option>
                                        <option value="exclude">Exclude</option>
                                    </select>
                                </td>

и код JavaScript

function updateaction(item) {
        $.post("edit_page_advanced_actions.php", {concession:item.id, action:item.value, db_name:item.name},function(action_response) {
         $('#action_response').html(action_response);

        });
}

Здесь я вызываю скрипт php *edit_page_advanced_actions.php*, в котором я написал некоторый код php. Я хочу вернуть сообщения отсюда на основе обновления базы данных до edit_page.php. то есть из вызывающего скрипта.

EDIT: -

Я обновляю базу данных в edit_page_advanced_actions.php. Я хочу вернуть сообщение об ошибке или сообщение об успехе на edit_page.php. то есть откуда это срабатывает. Например, «успешно обновлено», «успешно скопировано», «не удалось исключить» для пользователей на основе операций с БД.

Как это можно сделать.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Вы должны вернуть статус ошибки в заголовке http, используя функцию php header. Например:

header("Status: 400 Bad Request");
echo "The error is: ....";

Затем вы можете использовать $.ajax со специальной функцией ошибки:

$.ajax({
  type: 'POST',
  url: "edit_page_advanced_actions.php", 
  data: {
    concession:item.id, 
    action:item.value, 
    db_name:item.name
  },
  succes: function(data, action_response) {
     $('#action_response').html(action_response);
  },
  error: function(xhr, action_response) {
     // error code goes here
     alert(action_response);
  }
});
0 голосов
/ 01 декабря 2010

Я предлагаю вам вернуть объект json в метод на стороне сервера и использовать его в качестве ответа при вызове ajax на стороне клиента.

Вы можете вернуть объект json, например

{ Success: true, ErrorMessage: 'An error happened' }

Поскольку вы используете $ .post, ваша переменная action_response будет представлять собой строку json, вам нужно будет проанализировать ее в объект JavaScript.

Посмотрите на это для анализа ответа json: http://api.jquery.com/jQuery.parseJSON/

и в вашем коде на стороне клиента:

if(!action_response.Success) {
  displayErrorMessage(action_response.ErrorMessage);
}

РЕДАКТИРОВАТЬ:

Посмотрите на этот пост, чтобы вернуть объект json из метода PHP

Возвращение JSON из PHP в JavaScript?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...