2012-07-21 14 views
5

Mam ustawiony jakiś ajax, który właśnie testuję teraz, prawie za tym polega wysłanie niektórych danych z rozwijanych skrzynek do skryptu php, wykonanie pewnych obliczeń, a następnie zwrócenie Wynik, robi to dobrze i zwraca wynik, ale teraz, zamiast tylko odesłać jeden wynik i wyprowadzić go, chcę wysłać wiele wyników i wyprowadzić je, jestem w stanie wysyłać wiele danych do skryptu php, więc jestem na pewno mogę wysłać wielu z powrotem.Wysyłanie wielu wyników z PHP za pośrednictwem AJAX

W każdym razie wysyła tylko pierwszy wynik, a nie resztę.

Oto 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> 

I tu jest skrypt 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)); 

?> 

Widać, że już próbował dać mu odejść od tego, co myślałem, że może działać, jeśli potrzebujesz innego kodu lub chcesz, żebym usunął kod, który nie działa, daj mi znać.

Dzięki za wszystko i każda pomoc

+0

Dlaczego musisz robić dodawanie i mnożenie w PHP? JS jest w pełni zdolny – Martin

+0

Używam go jako części testowej, aby najpierw działał ajax, skrypt php będzie dość duży, więc robię to po – Arken

+0

ok tylko sprawdzanie;) Widzę, że masz i tak rozwiązał :) – Martin

Odpowiedz

7

tylko będzie otrzymywać jeden obiekt Response:

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

genialny, który działa idealnie, czy to zadziała, jeśli chcę odesłać 6 różnych wyników? – Arken

+0

Będzie działać mniej więcej tak samo: jeśli chcesz odesłać, na przykład 'array (" width "=> 10," height "=> 5," depth "=> 3)', będziesz może używać 'response.width',' response.height' oraz 'response.depth'. –

+0

ok genialny, dzięki za całą pomoc – Arken

4

spróbować. Pomyśl, że to pomoże. Nie trzeba używać kodów statusu, jeśli zamierzasz używać tylko sukcesu:

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

Dobre złapanie z "sukcesem" zamiast kodu statusu. +1! – Linuxios

Powiązane problemy