我有一些问题,我无法解决。
我的View中应该有一个javascript / ajax / jQuery函数创建一个数组并使用Route" / modulos / contas_ti / gerar_protocolo"
将用户发送到新页面这是我的javascript:
function check() {
// I don't know how many numbers I will have in my array.
// It will be dinamic. Can be [1, 2] or [1, 4, 5, 6] or anything else.
var array = [1, 2];
// I would like to pass 'array' in the URL below as parameter
window.location.href = "{{URL::to('/modulos/contas_ti/gerar_protocolo')}}"
}
我的路线:
// Maybe pass the array at the end of 'gerar_protocolo'?
// Like 'gerar_protocolo[]=' ?
Route::get('/modulos/contas_ti/gerar_protocolo', 'ContasTI\ContasTIController@gerarProtocolo');
我的控制器:
// How to pass the array as parameter inside ()? I also need to
// pass the array to the new view using 'with', right?
// Like with->('datas', $data);
public function gerarProtocolo() {
return view('modulos.contas-ti.gerar_protocolo');
}
答案 0 :(得分:0)
您可以将其作为请求参数发送
function check() {
var array = [1, 2];
window.location.href = "{{URL::to('/modulos/contas_ti/gerar_protocolo')}}" + "?array[]=1&array[]=2";
}
控制器:
public function gerarProtocolo() {
$data = request('array');
return view('modulos.contas-ti.gerar_protocolo', compact('data'));
}
答案 1 :(得分:0)
更好的方法是,使用隐藏变量创建一个表单,而不是在调用javascript check()函数时,将数组值存储在隐藏变量中,而不是使用javascript form.submit()方法。
答案 2 :(得分:0)
function check() {
var array = [1, 2, n];
var myArray= encodeURIComponent(JSON.stringify(array));
window.location.href = "{{URL::to('/modulos/contas_ti/gerar_protocolo')}}" + "?array=" + myArray;
}
控制器:
public function gerarProtocolo() {
$data = request->json()->('array');
return view('modulos.contas-ti.gerar_protocolo', compact('data'));
}
答案 3 :(得分:0)
您可以使用JSON.stringify()
将数组转换为json:
json_data = JSON.stringify(my_array);
那么您可以将您的网址格式化为:'example.com/api?json_data='+json_data
因此,在您的控制器中,只需通过调用:
$data = request()->get('json_data');
$data_array = json_decode($data, true); //converts to array
return view('modulos.contas-ti.gerar_protocolo', compact('data_array'));
在您看来,变量$data_array
可供使用。