【问题标题】:passing callback parameters ajax post传递回调参数ajax post
【发布时间】:2011-07-04 19:01:55
【问题描述】:

我需要一些关于 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 函数(数据)输出,它会将所有内容输出到$(".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...
}

如果有人能给我一些光明,那就太好了!

谢谢!

【问题讨论】:

    标签: php jquery mysql ajax callback


    【解决方案1】:

    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);
    
            }
        });
    

    【讨论】:

    • 您可能还需要将 $.ajax 数据类型更改为 json
    • @Downvoter:你能告诉我我的回答有什么问题吗?谢谢!
    【解决方案2】:

    您可以使用 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的信息。

    希望这会有所帮助。干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      相关资源
      最近更新 更多