如何在成功的AJAX / jQuery POST上返回PHP变量

如何使用AJAX在PHP中返回变量? 我目前在我的控制器中使用echo在dropdown .change显示价格。在一个名为price的div显示。

但是我有一个隐藏字段,我需要将行ID返回到更改。 如何在jQuery中分配return 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; } } 

视图

这是我的隐藏字段,我希望每次更改表单时都要传递VAR。 “/>

谢谢您的帮助!

嗯..一个选项是返回一个JSON对象。 要在PHP中创建JSON对象,首先要使用值数组,然后执行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 } 

数据是响应数组或者你回应的任何数据。例如……

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

在jquery

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

如果你只返回从php respone到ajax的单个值,那么你可以使用val方法设置它隐藏的feild

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