2012-07-21 18 views
5

Ho installato alcuni ajax, che sto solo testando ora, praticamente l'idea alla base è di inviare alcuni dati da caselle a discesa a uno script php, fare alcuni calcoli e quindi restituire il risultato, lo fa bene e restituisce il risultato, ma ora piuttosto che restituire un risultato e emetterlo, voglio restituire più risultati ed emetterli, sono in grado di inviare più dati allo script php, quindi sono sicuro di poter inviare più indietro.Invio di più risultati da PHP tramite AJAX

In ogni caso, invia solo il primo risultato e non il resto.

Ecco l'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> 

E qui è lo script php

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

?> 

Si può vedere che ho già provato a dargli un andare da quello che ho pensato che potrebbe funzionare, se si ho bisogno di un altro codice o voglio che tocchi il codice che ho aggiunto e che non funziona, quindi fammi sapere.

Grazie per tutto e qualsiasi aiuto

+0

Perché è necessario aggiungere e moltiplicare in PHP? JS è perfettamente in grado – Martin

+0

lo sto usando come parte di test per far funzionare prima ajax, lo script php sarà piuttosto grande, quindi lo faccio dopo lo – Arken

+0

ok solo a controllo;) Vedo che hai ha risolto comunque :) – Martin

risposta

7

si sta solo andando a ricevere un oggetto di risposta:

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

geniale, che funziona perfettamente, funzionerà se voglio rimandare 6 risultati diversi? – Arken

+0

Funzionerà più o meno lo stesso: se si desidera rinviare, ad esempio, 'array (" width "=> 10," height "=> 5," depth "=> 3)', sarai in grado di usare 'response.width',' response.height' e 'response.depth'. –

+0

ok brillante, grazie per tutto il vostro aiuto – Arken

4

provare questo. Pensa che ti sarà d'aiuto. Non è necessario utilizzare i codici di stato se si utilizzerà solo il caso di successo

$.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

Buona cattura con il 'successo' invece del codice di stato. +1! – Linuxios

Problemi correlati