我正在尝试将一些输入数据从get请求传递到我的控制器中的视图。我想知道这是否可能或我做错了吗?我想传递的数据来自表单中的文本字段,如下所示:
<form id='query_form' role='form' action='{{ URL::route('getUserbase'); }}' method="get">
<div class='form-group'>
<div class='input-group'>
<input type='text' id='query-bar' required class='form-control' placeholder='Enter search query..' name='entered_query' />
<span class='input-group-btn'>
<input type='submit' class='btn btn-default btn-color' value='Go' />
</span>
</div>
</div>
</form>
我用ajax提交它:
function standardGet($action)
{
$.get($action, function(data, status)
{
$("body").html(data);
});
}
$('#query_form').submit(function(event)
{
event.preventDefault();
var action = $(this).attr('action');
standardGet(action);
});
在我的laravel控制器中:
public function getUserBase()
{
if(Request::ajax())
return View::make('admin.plugins.userbase')->with('search_request', Request::get('entered_query'));
else
return View::make('admin.plugins.userbase');
}
使用此代码Request :: get('entered_query')为null,我还尝试了Input :: get('entered_query')。有什么想法吗?
编辑:getUserbase()的路由:
Route::get('/admin/panel/userbase', array('uses' => 'AdminController@getUserbase', 'as' => 'getUserbase'));
EDIT2: 另外为了澄清我是否可以使用任何值替换值,我只能访问表单中的输入:return View :: make('admin.plugins.userbase') - &gt; with('search_request ',“test”);
答案 0 :(得分:2)
您没有将任何数据传递给您的方法。尝试
$('#query_form').submit(function(event)
{
event.preventDefault();
var action = $(this).attr('action');
var method = 'GET';
$.ajax({
type: method,
url:action,
data: $('#query_form').serialize(),
success: function() {
}
})
});
使用getUserbase
方法
dd(Input::all());
<强>编辑:: 强>
将您想要的变量传递给您的视图,如下所示
return View::make('admin.plugins.userbase', compact('search_request', Input::get('entered_query'));
检查你传递的变量在你的视图中是否为Null,如下所示
@if(isset($search_request))
{{ $search_request }} //is not NULL echo it
@endif
答案 1 :(得分:0)
因为它不是在后端发送的:
function standardGet($action)
{
$.get($action, {data : data}, function(data, status){ // send data here.
$("body").html(data);
});
}
$('#query_form').submit(function(event)
{
event.preventDefault();
var action = $(this).attr('action');
var data = $(this).serialize(); // serialize this form.
standardGet(action, data); // pass it here
});
我想你必须改变这个:
Request::get('entered_query')
到此:
Request::get('name') // it should give you "entered_query"
Request::get('value') // it should give you typed text of input[name="entered_query"]
或者我在他们使用Input::get()
的文档中看到,所以你可以试试这些:
Input::get('name') // it should give you "entered_query"
Input::get('value') // it should give you typed text of input[name="entered_query"]
答案 2 :(得分:0)
使用此
$('#query_form').submit(function(event)
{
event.preventDefault();
var action = $('#formid').serialize(); //formid or formclass
standardGet(action);
});
Request::get('entered_query'); or
Input::get('entered_query');