【问题标题】:Store data of JSON response into multiple variables将 JSON 响应的数据存储到多个变量中
【发布时间】:2018-04-30 14:21:05
【问题描述】:

我一直在获得与我需要的相同的 json 响应,但它是在数据响应中。我想将它存储在不同的变量中,以便我可以在 javascript 中以我需要的方式使用它。

传递 json 数据的函数是:

 public function get_Ajax(Request $request)
    {
        $b_id = $request->input('b_id');

            $pays = Booking::find($b_id);
            foreach ($pays->payments as $pay) {
                $paymentss[] = $pay->payment;
                $p_dates[] = $pay->created_at->format('d-M-Y');
            }

        return response()->json([
            $paymentss,
            $p_dates
        ]);
    }

调用函数的按钮是:

<button class="btn btn-block btn-primary " data-toggle="modal" data-href="#full-width" href="#full-width" onclick="showdetail({{$book->id}})" style="background-color: #224777">View Payments Schedule</button>

以及获取响应的函数

function showdetail(b_id) {
$.get('/my-account/get_payments?b_id='+b_id, function(data){
alert(data)
});
}

请告诉我如何将数据拆分为两个变量。

【问题讨论】:

  • data 长什么样子?
  • 你想在哪里拆分它?如果你的意思是在 php 中拆分它,那么不,你不会那样做,就好像响应期待 json 返回一样,简单地返回一个带有两个对象的 json 响应是最简单的方法。与这种响应有关的所有 javascript 是 var x = response[0];和 var y = response[1];那么
  • 我想在函数“showdetail”中拆分数据,以便进一步使用。
  • 数据的响应是190000,190000,18000,20-Apr-2018,20-Apr-2018,20-Apr-2018
  • 从你给的sn-p来看,return response()->json没有被给定一个包含两个数组的数组吗?在你的 showdetail 中尝试 console.log(JSON.stringify(data)) 并告诉我们它打印出来的内容。

标签: javascript jquery html model-view-controller laravel-5.5


【解决方案1】:

您可以创建一个 JSON 对象。

例如:

$jsonObj= array('Payments' => $paymentss,
                'PaymentDates' => $p_dates);

这将创建以下 JSON:

{
    "Payments": payments,
    "PaymentDates": payDates
}

而在响应函数中:

var payments = data.Payments;
var paymentDates = data.PaymentDates;

【讨论】:

  • 你能指导如何创建 json 对象而不是数组吗?因为我在对象创建或使用方面没有太多经验。
【解决方案2】:

当您说“以我需要的方式使用它”时,您究竟是什么意思?你在修改数据吗?如果没有,那么您可以随心所欲地传递 JSON 对象,就可以了,不需要做任何其他事情

function showdetail(b_id) {
  $.get('/my-account/get_payments?b_id='+b_id, function(data){
    let var1 = data,
        var2 = data;
  });
}

如果您要以不同的方式编辑数据,复制 JSON 的最简单方法就是将其字符串化,然后像这样解析它

function showdetail(b_id) {
  $.get('/my-account/get_payments?b_id='+b_id, function(data){
    let var1 = JSON.parse(JSON.stringify(data)),
        var2 = JSON.parse(JSON.stringify(data));
  });
}

【讨论】:

  • 它最终确实奏效了,感谢您的回复,感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2016-08-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多