【问题标题】:Laravel get request pass input dataLaravel 获取请求传递输入数据
【发布时间】:2015-03-09 22:28:17
【问题描述】:

我正在尝试将一些输入数据从获取请求传递到我的控制器中的视图。我想知道这是可能的还是我做错了?我要传递的数据来自表单中的文本字段,如下所示:

    <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') 为空,我也尝试过 Input::get('entered_query')。有什么想法吗?

编辑:getUserbase() 的路由:

Route::get('/admin/panel/userbase', array('uses' => 'AdminController@getUserbase', 'as' => 'getUserbase'));

编辑2: 还要澄清如果我用我可以访问的任何值替换值,我只是无法访问表单中的输入:return View::make('admin.plugins.userbase')->with('search_request' , "测试");

【问题讨论】:

  • 您可以在问题中添加getUserBase() 路线吗?

标签: php jquery ajax laravel laravel-4


【解决方案1】:

您没有将任何数据传递给您的方法。试试

$('#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

【讨论】:

  • 收到错误 500:加载资源失败:服务器响应状态为 500(内部服务器错误)
  • 我可以看到屏幕截图中的错误或更多详细信息吗? @乔
  • 我想我试图错误地访问变量,以前在使用 ->with() 和 View::make() 时,我可以通过像这样引用它来访问变量: $entered_query并可以通过 isset(entered_query) 进行检查。如果我通过 dd(Input::all()) 我可以看到字符串: array(2) { ["entered_query"]=> string(17) "username=test123" ["builder-filter"]=> string( 0) "" } 但如何在结果中访问它?
  • 所以,你可以像return View::make('admin.plugins.userbase')-&gt;with('search_request', Input::get('entered_query'));@joe一样通过
  • 旁注:@if(isset($search_request)) {{ $search_request }} //is not NULL echo it @endif 的刀片简写为 {{ $search_request or '' }}
【解决方案2】:

使用这个

    $('#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'); 

【讨论】:

    【解决方案3】:

    因为它不是在后端发送的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 2021-09-24
      • 2018-10-29
      • 2014-10-18
      • 1970-01-01
      • 2021-06-21
      相关资源
      最近更新 更多