AJAX

2012-07-21 12 views
5

के माध्यम से PHP से कई परिणामों को वापस भेजना मैंने कुछ AJAX सेट किया है, जिसे मैं अभी परीक्षण कर रहा हूं, इसके पीछे काफी विचार है कि ड्रॉपडाउन बॉक्स से कुछ डेटा एक php स्क्रिप्ट में भेजना है, कुछ गणना करें और फिर वापस करें नतीजतन, यह अच्छा करता है और परिणाम देता है, लेकिन अब केवल एक परिणाम वापस भेजने और इसे आउटपुट करने के बजाय, मैं कई परिणाम वापस भेजना चाहता हूं और उन्हें आउटपुट करना चाहता हूं, मैं php स्क्रिप्ट में एकाधिक डेटा भेज सकता हूं, इसलिए मैं हूं यकीन है कि मैं कई वापस भेज सकते हैं।AJAX

वैसे भी यह केवल पहले परिणाम को वापस भेजता है और शेष नहीं।

यहाँ यहाँ है 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)); 

?> 

आप देख सकते हैं कि मैं पहले से ही यह मैं क्या सोचा काम हो सकता है, अगर से एक जाना देने की कोशिश की है 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> 

है और तुम किसी अन्य कोड की आवश्यकता है या मुझे वह कोड निकालना है जो मैंने जोड़ा है जो काम नहीं करता है, तो मुझे बताएं।

सब और किसी भी मदद के लिए धन्यवाद

+0

आपको PHP में अतिरिक्त और गुणा करने की आवश्यकता क्यों है? जेएस पूरी तरह से सक्षम है – Martin

+0

मैं इसे पहले काम करने के लिए AJAX प्राप्त करने के लिए एक परीक्षण भाग के रूप में उपयोग कर रहा हूं, php स्क्रिप्ट बहुत बड़ी होने जा रही है, इसलिए मैं – Arken

+0

ठीक बाद जांच कर रहा हूं;) मुझे लगता है कि आपको मिल गया है यह वैसे भी हल हो गया है :) – Martin

उत्तर

7

आप केवल एक ही प्रतिक्रिया ऑब्जेक्ट प्राप्त करने के लिए जा रहे हैं:

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

शानदार, जो पूरी तरह से काम करता है, क्या यह काम करेगा यदि मैं 6 अलग-अलग परिणाम भेजना चाहता हूं? – Arken

+0

यह उतना ही कम काम करेगा: यदि आप वापस भेजना चाहते हैं, उदाहरण के लिए, 'सरणी ("चौड़ाई" => 10, "ऊंचाई" => 5, "गहराई" => 3)', आप होंगे 'response.width',' response.height', और 'response.depth' का उपयोग करने में सक्षम। –

+0

ठीक शानदार, आपकी सभी मदद के लिए धन्यवाद – Arken

4

इस प्रयास करें। सोचो कि यह मदद करेगा। यदि आप केवल सफलता के मामले का उपयोग करने की आवश्यकता नहीं है तो

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

स्थिति कोड के बजाय 'सफलता' के साथ अच्छी पकड़। +1! – Linuxios