2012-07-21 18 views
5

configuré algunos ajax, que ahora mismo estoy probando, casi la idea detrás de esto es enviar datos de cuadros desplegables a un script php, hacer algunos cálculos y luego devolver el Como resultado, lo hace bien y devuelve el resultado, pero ahora, en lugar de simplemente devolver un resultado y enviarlo, quiero enviar múltiples resultados y enviarlos, puedo enviar datos múltiples al script php, entonces soy Seguro que puedo enviar múltiples de vuelta.Enviando resultados múltiples de PHP a través de AJAX

De todos modos, solo envía el primer resultado y no el resto.

Aquí está el 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> 

Y aquí está el 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)); 

?> 

Se puede ver que ya he tratado de darle una oportunidad de lo que pensé que podría funcionar, si Necesito cualquier otro código o quiere que elimine el código que agregué y que no funciona, entonces avíseme.

Gracias por todo y cualquier ayuda

+0

¿Por qué necesita hacer adiciones y multiplicaciones en PHP? JS es perfectamente capaz – Martin

+0

solo lo estoy usando como una parte de prueba para que el ajax funcione primero, el script php va a ser bastante grande, así que lo estoy haciendo después de – Arken

+0

solo estoy comprobando;) veo que tienes resolvió de todos modos :) – Martin

Respuesta

7

que sólo va a recibir una respuesta: el objeto

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

brillante, que funciona perfectamente, ¿funcionará si quiero devolver 6 resultados diferentes? – Arken

+0

Funcionará más o menos igual: si desea enviar de vuelta, por ejemplo, 'array (" width "=> 10," height "=> 5," depth "=> 3)', estará capaz de usar 'response.width',' response.height', y 'response.depth'. –

+0

bien brillante, gracias por toda su ayuda – Arken

4

probar esto. Piensa que ayudará. No necesita usar códigos de estado si solo va a usar el caso de éxito

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

Buena captura con el 'éxito' en lugar del código de estado. +1! – Linuxios

Cuestiones relacionadas