2012-07-21 15 views
5

Ich habe einige Ajax eingerichtet, die ich gerade jetzt teste, so ziemlich die Idee hinter es ist, einige Daten aus Dropdown - Boxen zu einem PHP - Skript zu senden, einige Berechnungen durchzuführen und dann die zurückgeben Ergebnis, es tut es gut und gibt das Ergebnis zurück, aber jetzt anstatt nur ein Ergebnis zurückzusenden und auszugeben, möchte ich mehrere Ergebnisse zurücksenden und sie ausgeben, ich kann mehrere Daten an das PHP-Skript senden, also bin ich Sicher kann ich mehrere zurück senden.Mehrere Ergebnisse von PHP über AJAX zurücksenden

Jedenfalls sendet es nur das erste Ergebnis zurück und nicht den Rest.

Hier ist die AJAX

<script> 
$("document").ready(function(){ 

    $(".add_extension").change(function(){ 


     var m = document.getElementById('meter_square'); 
     var meter_square = m.options[m.selectedIndex].value; 

     var s = document.getElementById('story_height'); 
     var story_height = s.options[s.selectedIndex].value; 

    $.ajax({ 
      type: "GET", 
      url: "script.php", 
      data: { meter_square: meter_square, story_height: story_height }, 
      dataType: "json", 
      statusCode: { 
       200: function (result, result2) 
       { 
        $("#expected_gain").html(result.value); 
       $("#house_price").html(result2.value2); 
       } 

      } 
     }); 
}) 
}); 
</script> 

Und hier wird das PHP-Skript

<?php 

$meter_square = $_GET["meter_square"]; 
$story_height = $_GET["story_height"]; 


$result = $meter_square + $story_height; 
$result2 = $meter_square * $story_height; 

echo json_encode(array("value" => $result, "value2" => $result2)); 

?> 

Sie sehen, dass ich habe bereits versucht, es aus gehen zu geben, was ich dachte, könnte funktionieren, wenn Sie brauche irgendeinen anderen Code oder möchte, dass ich den Code entferne, den ich hinzugefügt habe, der nicht funktioniert, dann lass es mich wissen.

Vielen Dank für alle und jede Hilfe

+0

Warum müssen Sie Addition und Multiplikation in PHP tun? JS ist perfekt in der Lage – Martin

+0

Ich benutze es nur als Testteil, um die Ajax zuerst zu arbeiten, das PHP-Skript wird ziemlich groß sein, also mache ich das nach – Arken

+0

ok, nur zu überprüfen;) Ich sehe, du hast es löste sich trotzdem :) – Martin

Antwort

7

Sie sind nur eine Antwort Objekt gehen zu:

function (response) { 
    $("#expected_gain").html(response.value); 
    $("#house_price").html(response.value2); 
} 
+0

brilliant, das funktioniert perfekt, wird das funktionieren wenn ich 6 verschiedene ergebnisse zurückschicken will? – Arken

+0

Es wird mehr oder weniger das gleiche funktionieren: Wenn Sie zurückschicken möchten, zum Beispiel, Array ("Breite" => 10, "Höhe" => 5, "Tiefe" => 3) ', werden Sie kann "response.width", "response.height" und "response.depth" verwenden. –

+0

ok brilliant, danke für deine Hilfe – Arken

4

bereits. Denke, es wird helfen. Keine Notwendigkeit, Statuscodes zu verwenden, wenn Sie nur Erfolg verwenden werden Fall

$.ajax({ 
     type: "GET", 
     url: "script.php", 
     data: { meter_square: meter_square, story_height: story_height }, 
     dataType: "json", 
     success: function(data){ 
      $("#expected_gain").html(data.value); 
      $("#house_price").html(data.value2); 
     } 
    }); 
+0

Guter Fang mit dem 'Erfolg' anstelle des Statuscodes. +1! – Linuxios

Verwandte Themen