Могу ли я получить больше переменных вместо строки в jquery $ ajax? - PullRequest
1 голос
/ 20 мая 2009

У меня есть этот скрипт:

$.ajax({    
    url: 'submit_to_db.php',
    type: 'POST',
    data: 'name=' + name + '&email=' + email + '&comments=' + comments,

success: function(result) {
    $('#response').remove();
    $('#container').append('<p id="response">' + result + '</p>');
    $('#loading').fadeOut(500, function() {
    $(this).remove();
});

}
});

Затем в моем php-файле после вставки в базу данных я повторяю «Комментарий обновлен», затем добавляю в свой контейнер и медленно исчезаю. А пока я хочу вставить новый комментарий и в контейнер. Поэтому я попытался повторить "комментарий обновлен! & Com =". $ Comment; но он был возвращен в виде строки, а не 2 переменных. \

EDIT:

Так странно, я получаю неопределенный в моем php-файле,

$ comment = $ _POST ['comment']

что-то не так в моем коде js или php?

Ответы [ 2 ]

2 голосов
/ 20 мая 2009

Ответ не содержит переменных. Он содержит текст, результат запроса, который вы сделали. Я рекомендую использовать JSON.

#in submit_to_db.php
$response = array();

if($submitted) { #if the comment was inserted successfully
  $response['status'] = 'OK';
  $response['message'] = 'Your comment was added';
  $response['comment'] = $_POST['comments'];
}
else {
  $response['status'] = 'ERROR';
  $response['error'] = 'You must enter your name'; #just an example
}
echo json_encode($response);
#would yield {"status":"OK","comment":"the comment just added"}


#in yourJsFile.js
$.ajax({    
    url: 'submit_to_db.php',
    type: 'POST',
    data: 'name=' + name + '&email=' + email + '&comments=' + comments,
    dataType: 'json',
    success: function(response) {

        if(response.status == 'OK') {
           $('#response').remove();
           $('#container').append('<p id="response">' + response.message + '</p>');
           $('#loading').fadeOut(500, function() {
             $(this).remove();
           });

           $('#comments').append('<li>' + response.comment + '</li>'); //just an example
        }
        else {
           $('#container').append('<p id="response">' + response.error + '</p>');
        }
    }
});

Подробнее Информация в формате JSON.

0 голосов
/ 20 мая 2009

Просто запросите объект JSON, которым вы можете манипулировать на стороне клиента: это может быть простая строка, массив, дерево сложных объектов.

Посмотрите на тип запроса $. Ajax ; Вы можете найти много образцов в сети.

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