Как я могу вернуть вид, используя ajax в laravel? - PullRequest
0 голосов
/ 08 апреля 2020

У меня возникла проблема, я хотел бы проверить мои данные, когда я отправлю их, используя ajax, вот мой ajax

ajax. js

let dataNewMemoData = JSON.stringify(createnewMemoData);

 $.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
dataType: 'json',
contentType: 'json',
data: dataNewMemoData,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: 'application/json; charset=utf-8'
})

и вот мой веб-маршрут

web. php

 Route::post('/crew_memo/submitdata', 'CrewProgramController@saveData');

и вот мы у моего контроллера

контроллер. php

public function saveData(Request $request){

    $request = json_decode($request->getContent());
    return view('CrewProgram.succes')->render();
    // return dd($request);
}

сначала я хочу go к моему succes.blade.php я не знаю, почему моя страница никогда go нигде не встречается, так жестко мой с методом post все в порядке

enter image description here

секунд, я хочу посмотреть на свои данные, чтобы их можно было использовать return dd($request) как я могу их решить?

Я пытался использовать это

return (String) view(CrewProgram.succes) и return view(CrewProgram.success)->render(), до

и ничего не работает, так что помогите мне, я использую laravel

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Сначала вам нужно исправить ваши AJAX данные

из вашей версии

$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
dataType: 'json',
contentType: 'json',
data: dataNewMemoData,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: 'application/json; charset=utf-8'
})

на эту

$.ajax({
url: '/crew_memo/submitdata',
method: 'POST',
contentType: 'json',
data: { content : dataNewMemoData},
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
success : function(data){
   console.log(data) //this will be your html respone make sure you don't have any html or header or body tag inside your view file you want to render.
},
error : function(jqXHR,textStatus,thrownError){
   console.log(jqXHR) //for non 2xx or 3xx response code
}

})

Теперь мы будем go в ваш метод Контроллера

из этой опубликованной c функции saveData (Запрос $ request) {

    $request = json_decode($request->getContent());
    return view('CrewProgram.succes')->render();
    // return dd($request);
}

для этого

public function saveData(Request $request){

        $request = json_decode($request->get('content));
        return view('CrewProgram.succes')->render();
        // return dd($request);

}

Вы можете создать этот PageRequest.php файл в своей папке app\Http\Requests

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class PageRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
        ];
    }
}

, а затем вместо

public function saveData(Request $request){}

сделать его

public function saveData(PageRequest $request){}

, затем проверить значение $request->all(), выполнив dd($request->all())

0 голосов
/ 08 апреля 2020

Вы можете попробовать это так. обновите свой контроллер следующим образом.

       return response()->json([
            'htmlData' => view('CrewProgram.succes')->render()
        ]);

и установите jquery

 $.ajax({
    url: '/crew_memo/submitdata',
    method: 'POST',
    dataType: 'json',
    contentType: 'json',
    data: dataNewMemoData,
    headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
    contentType: 'application/json; charset=utf-8',
    success: function (data) {
       alert(data.htmlData)
     }
    })
...