Как вернуть переменные PHP на успех AJAX / jQuery POST

Как использовать AJAX для возврата переменной в PHP? В настоящее время я использую echo в своем контроллере для отображения цены на dropdown .change .

Однако у меня есть скрытое поле, в котором мне нужно вернуть идентификатор строки для изменения. Как назначить return var в jQuery, чтобы я мог повторить его в своем скрытом поле?

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; } } 

Посмотреть

Вот мое скрытое поле, которое я хочу передать VAR каждый раз, когда форма изменяется. "/>

Спасибо за помощь!

Related of "Как вернуть переменные PHP на успех AJAX / jQuery POST"

Ну … Один из вариантов – вернуть объект JSON. Чтобы создать объект JSON в PHP, вы начинаете с массива значений, и вы выполняете json_encode($arr) . Это вернет строку JSON.

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

Теперь в вашем jQuery вам нужно будет указать свой вызов $.ajax что вы ожидаете некоторые возвращаемые значения JSON, поэтому вы указываете другой параметр – dataType : 'json' . Теперь ваши возвращаемые значения в функции success будут обычным объектом JavaScript.

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

Выход не должен отображать другие вещи, кроме ответа. RESPONDE хорош для массива или объекта. Вы можете получить к нему доступ

 success: function(data) { data } 

data – массив ответа или что-то, что вы эхо. Например …

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

в jquery

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

если u возвращает только одно значение из php respone в ajax, тогда u может установить его скрытый feild с помощью метода val

 $("#hidden_fld").val(return_val);