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];
精彩评论