如何在PHP中使用AJAX返回变量?我目前正在使用控制器中的echo在名为div
的dropdown .change
中显示价格。
然而,我有一个隐藏字段,我需要在更改时将行id返回给它。如何在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给它。“/>
谢谢你的帮助!
发布于 2012-11-03 19:54:39
好吧..。一种选择是返回一个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
}
});
发布于 2012-11-03 19:55:20
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); }
发布于 2012-11-24 19:40:44
如果您只从php响应中返回单个值到ajax,那么您可以使用val方法设置它隐藏字段
$("#hidden_fld").val(return_val);
https://stackoverflow.com/questions/13212882
复制相似问题