【问题标题】:Return a blade template after a request is finished using ajax使用 ajax 完成请求后返回刀片模板
【发布时间】:2020-06-25 20:29:15
【问题描述】:

我有一个问题,我正在用 laravel 开发一个平台,我正在使用 ajax 来发布,关键是我想在 ajax 请求成功结束后加载一个刀片模板,我该怎么做这样做?

  1. 控制器

    public function store(Request $request) {
    
    $equipo = new Equipo();
    $equipo->id_usuario_crea = $request->id_usuario_crea;
    $equipo->consecutivo = $request->consecutivo;
    $equipo->nombre_equipo = $request->nombre_equipo;
    $equipo->serie = $request->serie;
    $equipo->descripcion = $request->descripcion;
    $equipo->marca = $request->marca;
    $equipo->modelo = $request->modelo;
    $equipo->id_empresa = $request->id_empresa;
    $equipo->id_sede = $request->id_sede;
    $equipo->id_ubicacion = $request->id_ubicacion;
    $equipo->id_tipo_equipo = $request->id_tipo_equipo;
    $equipo->id_proveedor = $request->id_proveedor;
    $equipo->id_estado_equipo = $request->id_estado_equipo;
    $equipo->registro_invima = $request->registro_invima;
    $equipo->foto = $request->foto;
    $equipo->id_riesgo = $request->id_riesgo;
    $equipo->save();
    
    if ($request->hasFile('foto') && $equipo->save() == true) {
        $path         = $request->file('foto')->store('public');
        $equipo->foto = $path;
        $equipo->save();
    }
    
    if($equipo->save() == true){
      // $returnHTML = view('equipos.index')->with('user', $user)->render();
    
        $returnHTML = view('equipos.index');
    return response()->json(array('success'=> 'El equipo se ha guardado exitosamente', 'html'=>$returnHTML));
    
    
        //return response()->json(array('success' => true, 'html'=>$returnHTML));
    
    }else{
        return response()->json(['fail'=> 'Falló al intentar guardar el equipo']);
    }
    }
    
  2. AJAX 的一小部分

    jQuery.ajax({
                url: "{{route('equipos.store')}}",
                method: 'post',
                data: {
                    consecutivo: consecutivo,
                    nombre_equipo: nombre_equipo,
                    serie: serie,
                    descripcion: descripcion,
                    marca: marca,
                    modelo: modelo,
                    id_empresa: empresa,
                    id_sede: sede,
                    id_ubicacion: ubicacion,
                    id_tipo_equipo: tipo_equipo,
                    id_proveedor: proveedor,
                    id_estado_equipo: estado_equipo,
                    registro_invima: registro_invima,
                    foto: foto,
                    id_riesgo: riesgo,
                    id_usuario_crea: usuario_crea
                },
                success: function(result) {
                    console.log(result);
                    swal({
                        title: "",
                        text: result.success,
                        icon: "success",
                        button: "Aceptar",
                        type: "success",
                    });
    
                    **//RETURN THE BLADE TEMPLATE HERE** 
    
                },
                fail: function(result) {
                    console.log(result);
                    sweetAlert("", result.fail, "error");
                },
                error: function(xhr, ajaxOptions, thrownError) {
                    console.log(xhr.status);
                    //console.log(ajaxOptions);
                    console.log(thrownError);
                }
            });
    

在正确保存数据的情况下,我显示了一个sweetalert,但我也想重定向到“equipos”索引视图,但我不知道该怎么做,我已经搜索过了,但是,我还没有找到解决方案,非常感谢您。

【问题讨论】:

    标签: php jquery ajax laravel laravel-blade


    【解决方案1】:

    如果你只想重定向索引视图,我认为你不需要在 ajax 请求中加载 Html 内容,只需使用 js 重定向到路由。

    window.location.replace('URL') 
    

    在这种状态下 URL=route('equipos.index')

    【讨论】:

      【解决方案2】:

      您可以从控制器 ( return view(...) ) 返回 html 内容并替换 ajax.success 上的 html 内容。 ( $('#ajaxResults').html( response.data ) )

      【讨论】:

        猜你喜欢
        • 2021-10-09
        • 2015-12-28
        • 2011-11-29
        • 1970-01-01
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2013-04-26
        • 1970-01-01
        相关资源
        最近更新 更多