web-dev-qa-db-fra.com

plusieurs valeurs de retour de PHP avec jQuery AJAX

J'utilise ce code jQuery:

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

Comment puis-je faire quelque chose comme ceci: $(".projDesc").html(html1); Donc, je peux diviser les résultats retournés en deux éléments html?

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

c'est le PHP j'utilise et je veux faire écho à une autre déclaration que je peux mettre dans un autre élément HTML

Est-ce que ça a du sens?

27
benhowdle89

Utilisez json_encode() pour convertir un tableau associatif de PHP en JSON et utilisez $.getJSON(), qui renverra un tableau Javascript.

Exemple:

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

En Javascript:

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

Faites que votre réponse retourne JSON, vous devrez changer votre jQuery en ceci, donc le dataType attendu est json:

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

Ensuite, vous devez coder votre réponse en tant que tableau JSON:

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

Pourquoi ne renvoyez-vous pas un objet JSON . De cette façon, vous pouvez facilement mettre de nombreux résultats différents dans la réponse ajax.

3
Thariama