I'm trying to pass some input data from a get request to a view in my controller. I was wondering if this is possible or am I doing it incorrectly? The data I want to pass is from a text field within a form as below:
<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>
I am submitting it with 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);
});
In my laravel controller:
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');
}
With this code Request::get('entered_query') is null, I've also tried Input::get('entered_query'). Any ideas?
EDIT: Route for getUserbase():
Route::get('/admin/panel/userbase', array('uses' => 'AdminController@getUserbase', 'as' => 'getUserbase'));
EDIT2: Also to clarify if i replace the value in with any value I can access it, I just can't access the input from the form: return View::make('admin.plugins.userbase')->with('search_request', "test");
You are not passing any data to your method. Try
$('#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() {
}
})
});
In your getUserbase
method
dd(Input::all());
Edited::
Pass what you wanted variable to your view like the following
return View::make('admin.plugins.userbase', compact('search_request', Input::get('entered_query'));
Check what you had passed variable is not Null in your view like the following
@if(isset($search_request))
{{ $search_request }} //is not NULL echo it
@endif
Because it is not sent at backend:
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
});
and i think you have to change this:
Request::get('entered_query')
to this:
Request::get('name') // it should give you "entered_query"
Request::get('value') // it should give you typed text of input[name="entered_query"]
or as i see at the documentation they have used Input::get()
so you can try with these:
Input::get('name') // it should give you "entered_query"
Input::get('value') // it should give you typed text of input[name="entered_query"]
Use this
$('#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');