【问题标题】:Problem sending an array containing some JSON string to AJAX from PHP从 PHP 向 AJAX 发送包含一些 JSON 字符串的数组时出现问题
【发布时间】:2018-11-06 06:54:07
【问题描述】:

我正在研究一种使用 AJAX 将值从前端传递到后端的表单。从前端,所有数据都可以正常传递,除了在后端执行一些逻辑之后,我需要将数据传输到前端。数据包含在 2 个单独的变量中,我已将每个变量转换为 JSON 对象以进行传输。 当我 dd() 后端中的数据时,我以字符串的形式获取它。

问题是当我在控制台选项卡(来自 AJAX 代码)中记录响应时,我没有从后端得到任何响应。请协助?

包含 PHP 代码的控制器文件

public
    function validatePlanEntries(Request $request)
    {   
        //dd($request->all());

        //Other PHP logic

        //Convert data to JSON format
        $form = json_encode($oldata);

        //dd($form);

        $planJson = json_encode($plans_benefits);

        $plans = compact(['planJson' , 'form']);
        //dd($plans);
        return $plans;
    }

AJAX 代码从上面的控制器获取响应

 <script>
        //Other Js code

       form.parsley().validate();

      //Returns true if Parsley validation has no errors
      if (form.parsley().isValid()){
        $.ajax({
            type: "POST",
            url: "getplans",
            data:JSON.stringify(type),
            contentType: 'application/json',
            dataType: "json",
            success: function(response){
                console.log(response);
            },
            failure: function(errMsg) {
                 alert(errMsg);
            }
        });
      };
</script>

【问题讨论】:

    标签: php ajax data-transfer


    【解决方案1】:

    我不会将它们转换为 2 个单独的 JSON 编码值,而是将它们添加到 1。所以不是...

    //Convert data to JSON format
    $form = json_encode($oldata);
    
    //dd($form);
    
    $planJson = json_encode($plans_benefits);
    
    $plans = compact(['planJson' , 'form']);
    //dd($plans);
    return $plans;
    

    类似,用两条数据和json_encode() 结果构建一个数组...

    return json_encode([ "form" => $oldata, "plan" => $plans_benefits]);
    

    您需要更新 Javascript 以提取响应的相关部分。

    更新:

    我不是 Laravel 人,不过看来你可以用……

    return \Response::json([ "form" => $oldata, "plan" => $plans_benefits]);
    

    【讨论】:

    • 好的,但是当我从 AJAX 代码将其登录到控制台选项卡时,我没有得到任何响应
    • 当我 dd() 时,我得到的响应是 JSON 字符串,但是当我使用 return 关键字将其引导回 AJAX 代码并记录响应时,我什么也没看到
    • return 不能在 ajax.user print_r 中获得响应
    • 您是否使用框架来处理您的回复,它如何返回数据?
    • @prasannaputtaswamy 我想将数据重定向到 AJAX 里面成功,print_r 将如何解决这个问题
    猜你喜欢
    • 2011-04-04
    • 2012-05-16
    • 1970-01-01
    • 2019-12-02
    • 2016-04-25
    • 2021-08-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多