javascript - 拉拉维尔 4 : manipulating ajax data through controller

标签 javascript php jquery ajax laravel-4

我是 Laravel 和 ajax 的新手。我正在尝试通过 ajax 从表单获取数据,并通过相同的 ajax 调用 Controller 中的方法。 Controller 中的方法搜索数据库,然后返回一个由 ajax 处理的 json 响应(我仍在考虑最后一部分,我还没有真正做到这一点)。 让我向您展示我现在拥有的:

路由.php:

Route::get('/', 'HomeController@getIndex');
Route::post('/', 'HomeController@postIndex');

家庭 Controller :

public function getIndex()
{
    return View::make('index');
}

public function postIndex()
{
    $match = Input::get('search');
    $results = Customers::where('name', 'like', '%'.$match.'%')->get(); 
    return Response::json(array('results' => $results));
}

还有我的index.blade.php View :

<script>
$(document).ready(function() {
    $('form#find').submit(function() {
        $.ajax({
            url : 'CustomerSearch/Public',
            type: 'post',
            dataType: 'json',
            data: $('form#find').serialize(),           
        });
        return false;
    });
}); 

和形式:

    {{ Form::open(array('url' => '', 'method' => 'POST', 'id' => 'find')) }}
    {{ Form::text('search', '', array('class' => 'search-query', 'placeholder' => 'Search')) }}
    {{ Form::submit('Submit', array('class' => 'btn btn-info')) }}
    {{ Form::close() }}

所以我应该从表单中获取数据,然后将其发送到 Controller 中的“postindex”方法,以便它得到处理然后发回,对吧?除了我收到错误“找不到 Controller 方法 [索引]”。当我实际上没有调用任何索引方法时,因为它们的名称不同。 我是新手,如果不清楚,很抱歉。

更新: 就像我在评论中所说的那样,我发现将路由合并到一个route::controller 中摆脱了我之前的问题,但不幸的是我仍然无法让ajax 将数据发送到我的 Controller 。我没有收到任何错误,但 ajax 不会将任何内容加载到 Controller 。知道我的 ajax 可能出了什么问题吗?:

$(document).ready(function() {
    $('form#find').submit(function() {
        $.ajax({
            url : '{{URL::to('/')}}',
            type: "POST",
            dataType: 'json',
            data: { search: $('.search-query').val() },
            success: function(info){
                 console.log(info);
            }
        });
        return false;
    });
}); 

最佳答案

只需在您的 Controller 中使用:

return json_encode(array('key' => 'val'));

对于数据输入,我转向了一个非常适合我的 JQuery 插件。 Follow this link 。 函数如下所示:

function someName(){
    // A plugin is used for this function
    $('#form_id').ajaxForm({
        url: '/',
        type: 'post',
        dataType: 'json',
        success: function(response){
            alert(response.key);
        }
    });
}

以及相应的形式:

<form id="form_id">
    <!-- Put your fields here -->
    <input type="submit" onclick="someName()">
</form>

我建议您使用这种方法,这可能取决于插件,但是最简单的。当然,您可以使用 .submit() 语句,而不是将其绑定(bind)到 onclick 事件

关于javascript - 拉拉维尔 4 : manipulating ajax data through controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276761/

相关文章:

javascript - XML Schema 正则表达式与 JavaScript/ECMAScript 正则表达式兼容吗?

javascript - 如果应用于类属性,jquery 最接近返回未定义

javascript - CodeIgniter Angular 文件夹动态 URL 路由

php - 在 LIKE 查询中查找 % 字符

php - 犯罪代理API

javascript - 根据表格数据对表格行进行排序

javascript - fullPage.js 滚动幻灯片到不同方向

javascript - 如何将其应用到 jquerymobile 中的所有页面

javascript - 如何获取文本区域中的行数?

javascript - 如何在php中屏蔽javascript字符串