AJAX, POST, JSON и PHP: как мне это сделать? - PullRequest
0 голосов
/ 06 сентября 2011

Как отправить данные AJAX через $ .ajax () в JavaScript с помощью типа: «POST» с использованием форматирования данных JSON и как получить данные в сценарии PHP (через $ _POST ??) и поместить их в массив, чтобы я мог его использовать? Я пинал это часами и понятия не имею, что я делаю не так. Если бы кто-то мог опубликовать код JS и PHP для отправки и получения данных в формате JSON, я был бы бесконечно благодарен !!!!!

JS код:

$.ajax({
                type: "POST",
                url: $(location).attr('protocol') + "//" + $(location).attr('hostname') + "/ajax/rate.php",
                data: {
                    "value1": 1,
                    "value2": 2,
                    "value3": 3,
                    "value4": 4,
                    "value5": 5
                },
                dataType: "json"
            });

PHP код:

Я просто использовал $ _POST ["value1"] и т. Д., Чтобы получить это значение. На этой ноте, есть ли способ сделать вместо этого запрос ajax GET И открыть новое окно с этими данными GET, чтобы я мог видеть, что происходит ??

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Идея заключается в создании php-страницы с выходными данными в форме JSON.Эти данные взяты из массива и отражены с помощью функции json_encode.Используя метод $.ajax() из jQuery, вы отправляете запрос на эту страницу и управляете данными в функции success:.

Пример.

PHP - array.php

$array = ("flag" => 1); 
echo json_encode($array);

JavaScript

$.ajax({
  url : '/array.php', // page containing JSON data
  dataType : 'json', // must be specified for JSON manipulation in success
  success : function(data) { 
       // this function is called if the call to test.php is successful
       // access the data using object dot syntax
       alert(data.flag); // should display '1'
  }
});

// Отправка данных на сервер таким способом PHP - test.php

echo $_POST['data'];

JavaScript

$.ajax({
  url : '/test.php',
  dataType : 'text', 
  type : 'post',
  data : { data : 'Hello, World!'},
  success : function(data)          
       alert(data); // should display 'Hello, World'
  }
});
0 голосов
/ 06 сентября 2011

Насколько я знаю, вы не можете POST-данные в формате JSON.Только в виде строки запроса, например, GET.Однако вы можете возвращать данные из сценария PHP в формате JSON.

Например.

$.ajax({
 url: "script.php",
 dataType: 'json', // Tell jQuery/JS that the returned data from script.php is JSON format
 data: 'id='+Id, // will become $_POST['id'] with the value of Id (js var)
 success: function(data){
    // data is JSON formatted
 }

Теперь в вашем сценарии PHP вы получаете переменную POST с именем $ _POST ['id'].Допустим, что $ _POST ['id'] необходим для запроса определенного клиента из базы данных.Его данные можно сохранить в массиве, затем закодировать в json, а затем отправить обратно на страницу с помощью запроса ajax.

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