0

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");

1
  • Can you add getUserBase() route in your question? Commented Jan 12, 2015 at 7:34

3 Answers 3

2

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
Sign up to request clarification or add additional context in comments.

6 Comments

Getting error 500: Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Can I see errors in screenshot or more details? @joe
I think I am trying to access the variable incorrectly, previously when using ->with() with View::make() I was able to access the variables by just referencing it like so: $entered_query and could check it by isset(entered_query). If I pass dd(Input::all()) i can see the string: array(2) { ["entered_query"]=> string(17) "username=test123" ["builder-filter"]=> string(0) "" } but how can I access it in my result?
So, you can pass like return View::make('admin.plugins.userbase')->with('search_request', Input::get('entered_query')); @joe
Side-note: Blade-shorthand for @if(isset($search_request)) {{ $search_request }} //is not NULL echo it @endif Would be {{ $search_request or '' }}
|
0

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'); 

Comments

0

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"]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.