Laravel获取请求传递输入数据

时间:2015-01-12 07:31:38

标签: php jquery ajax laravel laravel-4

我正在尝试将一些输入数据从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”);

3 个答案:

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