передача параметров обратного вызова ajax post - PullRequest
1 голос
/ 04 июля 2011

Мне нужна помощь с обратными вызовами ajax.Я пытаюсь передать определенные параметры после вызова ajax

        var dataString = 'string=' + string;
        $.ajax({
            type: "POST",
            url: "file.php",
            data: dataString,
            success: function(data){

                $(".selector").html(data)

        }
        });

Хорошо, так что если мой file.php имеет несколько запросов mysql, и я пытаюсь отобразить значения

echo $picture;
echo $title;
echo $additional_values;

Как вывести определенные значения и передать их через ajax

Так что, если я выведу их в свой php-файл и выведу их через мою функцию ajax (data), он выведет все в $(".selector").html(data) (<div class="selector"></div>), однако, я пытаюсь выводить по одной вещи за раз

success: function(data){
  $(".picture").html(data); // echo's out picture in my picture div class
  $(".title").html(data); // echo's out title in my title div class
  $(".additional_values").html(data); // echo's out to the div class...
}

Если кто-то может пролить на меня немного света, это будет здорово!

Спасибо!

Ответы [ 2 ]

4 голосов
/ 04 июля 2011

PHP

$data = array('picture'=>$picture,
              'title'=>$title,
              'values'=>$additional_values,
             );

print json_encode($data);

JavaScript

    var dataString = 'string=' + string;
    $.ajax({
        type: "POST",
        url: "file.php",
        data: dataString,
        datatype: 'json',
        success: function(data){
            $(".picture").html(data.picture);
            $(".title").html(data.title);
            $(".additional_values").html(data.values);

        }
    });
1 голос
/ 04 июля 2011

Вы можете использовать JSON. JSON - это формат сериализации, который позволяет вам «преобразовать» объект в строку и преобразовать строку обратно в объект. PHP имеет встроенную функцию для кодирования в строку JSON, которая называется json_encode:

PHP код

file.php
<?php
//... Your logic here
header("Content-type: application/json"); //'Tell' the browser that it's a JSON response
$returnData = array('picture'=>$picture, 'title'=>$title, 'values'=>$additional_values);
echo json_encode($returnData); //Encode $returnData to JSON string
?>

Теперь jQuery может получить эту строку и автоматически преобразовать ее в объект javascript. У нас есть объект в параметре data

JavaScript

var dataString = 'string=' + string;
$.ajax({
    type: "POST",
    url: "file.php",
    data: dataString,
    success: function(data){
       //At this point, data is just as php's $returnData, so it has 3 properties
       //picture, title and values.
       $(".picture").html(data.picture);
       $(".title").html(data.title);
       $(".additional_values").html(data.values);
    }
});

JSON доступен на многих языках и является форматом обмена фактами в AJAX. Более подробная информация о http://json.org.

Надеюсь, это поможет. Приветствия

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