如何在成功的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);