2012-11-03 15 views
7

मैं PHP में एक चर को वापस करने के लिए AJAX का उपयोग कैसे करूं? मैं वर्तमान में पर div मूल्य पर मूल्य प्रदर्शित करने के लिए अपने नियंत्रक में गूंज का उपयोग कर रहा हूं।सफलता पर PHP चर कैसे वापस करें AJAX/jQuery POST

हालांकि मेरे पास एक छिपी हुई फ़ील्ड है जिसे मुझे पंक्ति आईडी को बदलने पर वापस करने की आवश्यकता है। मैं jQuery में रिटर्न var कैसे आवंटित करूं ताकि मैं इसे अपने छिपे हुए क्षेत्र में गूंज सकूं?

jQuery

$(document).ready(function() { 
    $('#pricingEngine').change(function() { 
     var query = $("#pricingEngine").serialize(); 
     $('#price').fadeOut(500).addClass('ajax-loading'); 
     $.ajax({ 
      type: "POST", 
      url: "store/PricingEngine", 
      data: query, 
      success: function(data) 
      { 
        $('#price').removeClass('ajax-loading').html('$' + data).fadeIn(500); 
      } 
     }); 
    return false; 
    }); 

}); 

नियंत्रक

function PricingEngine() 
{ 
    //print_r($_POST); 
    $this->load->model('M_Pricing'); 
    $post_options = array(
     'X_SIZE' => $this->input->post('X_SIZE'), 
     'X_PAPER' => $this->input->post('X_PAPER'), 
     'X_COLOR' => $this->input->post('X_COLOR'), 
     'X_QTY' => $this->input->post('X_QTY'), 
     'O_RC' => $this->input->post('O_RC') 
         ); 

    $data = $this->M_Pricing->ajax_price_engine($post_options); 

    foreach($data as $pData) { 
     echo number_format($pData->F_PRICE/1000,2); 
     return $ProductById = $pData->businesscards_id; 
    } 
} 

देखें

यहाँ मेरी छिपी हुई फ़ील्ड मैं हर समय प्रपत्र बदल गया है करने के लिए वीएआर पास करना चाहते है। "/>

मदद के लिए धन्यवाद!

उत्तर

15

खैर .. एक विकल्प एक JSON ऑब्जेक्ट वापस जाने के लिए किया जाएगा। PHP में एक JSON ऑब्जेक्ट बनाने के लिए, आप मूल्यों की एक सरणी के साथ शुरू और आप json_encode($arr) निष्पादित। अपने लौटे मूल्यों में dataType : 'json' अब - यह अब आप अपने jQuery में JSON स्ट्रिंग वापस आ जाएगी

$arr = array(
    'stack'=>'overflow', 
    'key'=>'value' 
); 
echo json_encode($arr); 

{"stack":"overflow","key":"value"} 

, आप अपने $.ajax कॉल है कि आप कुछ JSON वापसी मान उम्मीद कर रहे हैं बताने के लिए तो आप एक और पैरामीटर निर्दिष्ट करना होगा।। success फ़ंक्शन एक सामान्य जे होगा avaScript वस्तु।

$.ajax({ 
    type: "POST", 
    url: "...", 
    data: query, 
    dataType: 'json', 
    success: function(data){ 
    console.log(data.stack); // overflow 
    console.log(data.key); // value 
    } 
}); 
+0

मैंने आपके सुझाव को लागू किया। ऐसा लगता है कि काम कर रहा है लेकिन कुछ समस्याएं हैं .. कृपया नया प्रश्न देखें http://stackoverflow.com/questions/13213361/getting-undefined-response-from-jquery-ajax-form- पोस्ट धन्यवाद! ;) – fyz

+0

इस स्ट्रिंग को php चर में कैसे प्राप्त करें? – 151291

+0

151,291 @ - मेरे उदाहरण में, 'query' वेरिएबल के अंदर डेटा जब इस कोड को' AJAX' अनुरोध निष्पादित करता है '$ _POST' वेरिएबल के अंदर आ जाएगा। – Lix

1
echo json_encode($RESPONDE); 
exit(); 

बाहर निकलने के जवाब को छोड़कर अन्य बातों के प्रदर्शित करने के लिए नहीं है। RESPONDE सरणी या वस्तु होने के लिए अच्छा है। आप

success: function(data) 
      { data } 

डेटा पर उस तक पहुँच सकते responde सरणी है या जो भी आप jQuery

success: function(data){ alert(data.some_key); } 
+0

नियंत्रक रिटर्न में ajax सफलता समारोह से एक json वस्तु पारित कर सकते हैं JSON इनकोडिंग वस्तु, मैं कैसे php स्क्रिप्ट में इस वस्तु प्राप्त कर सकते हैं ?, इसका मतलब है मैं कैसे PHP स्क्रिप्ट – 151291

+0

में ajax सफलता समारोह से एक json वस्तु पारित कर सकते हैं @ 151,291 किसी भी पीएचपी कार्रवाई आप नया अनुरोध बनाने के लिए है, तो आप फिर से बनाने के लिए ajax है शुरू करने के लिए .. लेकिन इसकी नहीं तार्किक 1 ajax 2 को गति प्रदान करने ajax एक ही स्क्रिप्ट के लिए, अपने बेहतर अपने तर्क 1 स्क्रिप्ट जो आप ajax अनुरोध के साथ गति प्रदान में 2 तर्क जो आप जोड़ना चाहते हैं चलाने के लिए डाल दिया है, और वहाँ के लिए।() – Svetoslav

+0

json.decode (बेशक .. किसी और आप एक नया ajax अनुरोध करना है इसके यदि संभव हो तो) पीएचपी कार्य नहीं है। कृपया PHP.net पर जाएं और जेएसओएन हैंडलिंग के लिए खोज दस्तावेज पूर्ण है और आप इसे समझेंगे। मैं शिक्षक नहीं हूँ। – Svetoslav

1

में गूंज .. उदाहरण के लिए ...

echo json_encode(array('some_key'=>'yesss')); exit(); 

यदि u लौट रहे हैं php respone से AJAX तक केवल एक मान है, तो आप इसे वैल विधि

का उपयोग करके छुपा फ़ील्ड सेट कर सकते हैं
$("#hidden_fld").val(return_val);