2010-12-01 2 views
0

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

    <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. откуда он запускается. Например, «успешно обновлено», «Скопировано успешно», «Не удалось исключить» для пользователей на основе операций db.

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

Заранее благодарен!

+1

И проблема это ...? – tvanfosson 2010-12-01 12:39:04

+1

Каков ваш вопрос? Что не работает? – 2010-12-01 12:39:13

ответ

1

Вы должны вернуть статус ошибки в 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

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

Вы можете вернуть объект JSON как

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

Потому что вы делаете $ .post переменной action_response будет строка JSON, вам нужно будет разобрать его в JavaScript Object.

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

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

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

EDIT:

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

Returning JSON from PHP to JavaScript?

Смежные вопросы