Как перенаправить с одного представления лезвия на другое представление лезвия и передать ему динамически сгенерированную переменную? - PullRequest
0 голосов
/ 09 июля 2020

На мой взгляд, давайте назовем его View-A, я получаю ввод от пользователя в приглашении и назначаю его переменной, а затем мне нужно загрузить в браузер другое представление, скажем, View B, передавая ему эту переменную .

Скажем, в моем viewA.blade.php я взял ввод пользователя и назначил его переменной usersInput. Теперь мне нужно отправить его в представление B, чей маршрут в сети. php определен в Route::get('editRecord', 'MyController@displayEditRecordView')->name('editRecordFormView');.

Вопрос в том, как загрузить маршрут (editRecordFormView) в браузере и передать usersInput переменная к нему, от javascript написано в моем виде лезвия?

@ Tushar В моем ViewA.blade. php:

$.ajax({
    url: url_editRecordView.url,
    data: {
        usersInput: dataToSend.usersInput,
    },
    method: "get",
    cache: false,
    success: function (dataReturned, stringStatus, jqXHR) {
        console.log("dataReturned from mYController.displayEditRecordFormView:-");
        console.log(dataReturned);//check
        console.log("Type of dataReturned:-" + typeof dataReturned); //SAME DATA COMES BACK, AS THE DATA I SENT
    },
    error: function (jqXHR, stringStatus, stringExceptionThrown) {
        alert("Error! status: " + stringStatus + " ExceptionThrown: " + stringExceptionThrown);//check
    }
});

В моем MyController:

public function displayEditRecordFormView (Request $request) {
    error_log("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");//check
    error_log("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");//check
    $title= $request->input('usersInput');
    error_log("In displayEditRecordFormView: title: ".$title);//check
    $allPaintingsArray = $this->getAllPaintingsArraySanitized();
    $data = [
        "allPaintingsArray"=>$allPaintingsArray ,
        "title"=>$title
    ];

    return view("paintings.editRecordForm")->with("allGoodData", $data);
}

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вместо вызова AJAX почему бы не использовать что-то вроде этого:

var url = "/editRecord?usersInput=dataToSend.usersInput;
window.location.href = url;

переменная catch В контроллере:

$title= request()->filled('usersInput');// or find a way according to Laravel version
0 голосов
/ 09 июля 2020

Вы можете использовать AJAX. Просто установите обработчик событий, когда пользователь дает ввод, и отправьте запрос, содержащий ввод пользователя, в метод в вашем контроллере View-A через AJAX, и оттуда вы можете перенаправить на View-B вместе со значением, которое вы получено из запроса.

EDITED

Вместо использования метода view () попробуйте использовать метод redirect () как это:

return redirect()->route('editRecordFormView', ['input' => 'userInput']);

Чтобы узнать больше о перенаправлениях, обратитесь к this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...