首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在AJAX/jQuery POST成功时返回PHP变量

如何在AJAX/jQuery POST成功时返回PHP变量
EN

Stack Overflow用户
提问于 2012-11-04 03:51:45
回答 3查看 45.8K关注 0票数 8

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

然而,我有一个隐藏字段,我需要在更改时将行id返回给它。如何在jQuery中分配返回变量,以便在隐藏字段中回显它?

jQuery

代码语言:javascript
代码运行次数:0
运行
复制
$(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;
   });

});

控制器

代码语言:javascript
代码运行次数:0
运行
复制
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给它。“/>

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-04 03:54:39

好吧..。一种选择是返回一个JSON对象。要在PHP中创建一个JSON对象,首先要从一个值数组开始,然后执行json_encode($arr)。这将返回一个JSON字符串。

代码语言:javascript
代码运行次数:0
运行
复制
$arr = array(
  'stack'=>'overflow',
  'key'=>'value'
);
echo json_encode($arr);

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

现在在您的jQuery中,您必须告诉您的$.ajax调用您需要一些JSON返回值,所以您指定了另一个参数- dataType : 'json'。现在,success函数中的返回值将是一个普通的JavaScript对象。

代码语言:javascript
代码运行次数:0
运行
复制
$.ajax({
  type: "POST",
  url: "...",
  data: query,
  dataType: 'json',
  success: function(data){
    console.log(data.stack); // overflow
    console.log(data.key);   // value
  }
});
票数 16
EN

Stack Overflow用户

发布于 2012-11-04 03:55:20

代码语言:javascript
代码运行次数:0
运行
复制
echo json_encode($RESPONDE);
exit(); 

退出不是为了显示除了答案之外的其他东西。RESPONDE最好是数组或对象。您可以在以下位置访问它

代码语言:javascript
代码运行次数:0
运行
复制
success: function(data)
             { data }

数据是响应数组或您回显的任何内容。例如..。

代码语言:javascript
代码运行次数:0
运行
复制
echo json_encode(array('some_key'=>'yesss')); exit();

在jquery

代码语言:javascript
代码运行次数:0
运行
复制
success: function(data){ alert(data.some_key); }
票数 1
EN

Stack Overflow用户

发布于 2012-11-25 03:40:44

如果您只从php响应中返回单个值到ajax,那么您可以使用val方法设置它隐藏字段

代码语言:javascript
代码运行次数:0
运行
复制
$("#hidden_fld").val(return_val); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13212882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档