开发者

multiple return values from PHP with jQuery AJAX

I'm using this jQuery code:

$.ajax
({
    type: "POST",
    url: "customerfilter.php",
    data: dataString,
    cache: false,
    success: function(html)
    {
        $(".custName").html(html);
    }
});

How can i do something like 开发者_运维技巧this: $(".projDesc").html(html1); So i can split the returned results into two html elements?

echo "<p>" .$row['cust_name']. "</p>";

thats the PHP i'm using and i want to echo another statement which i can put into another HTML element

Does this make sense?


Use json_encode() to convert an associative array from PHP into JSON and use $.getJSON(), which will return a Javascript array.

Example:

<?php echo json_encode(array("a" => "valueA", "b" => "valueB")); ?>

In Javascript:

$.getJSON("myscript.php", function(data) {
  alert("Value for 'a': " + data.a + "\nValue for 'b': " + data.b);
});


Make your response return JSON, you'll need to change your jQuery to this, so the expected dataType is json:

$.ajax
({
    type: "POST",
    url: "customerfilter.php",
    dataType: 'json',
    cache: false,
    success: function(data)
    {
        $(".custName").html(data.message1);
        $(".custName2").html(data.message2);
    }
});

Then you need to encode your response as a JSON Array:

 <?php echo json_encode(
      array("message1" => "Hi", 
      "message2" => "Something else")
 ) ?>


Why don't you return a JSON object. This way you can easily put many different results inside the ajax response.


You can use a separator and join the values like this in your response

echo $value1.'|'.$value2;

Now you can use JavaScript method split("|") as below:

var myarray = response.split("|");
var value_1 = myarray[0];
var value_2 = myarray[1];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜