【问题标题】:Return a view via ajax in laravel在 laravel 中通过 ajax 返回视图
【发布时间】:2013-11-10 14:41:51
【问题描述】:

每当用户使用 ajax 单击按钮时,我想向用户显示一个视图。
这是我的代码。

// BASE = localhost/project/public/

    $('#button').click(function() {
        $.ajax({
            url: BASE + "user/settings",
            type: 'GET'
        })
        .done(function( data ) {
            console.log( data );
        });
    });  

还有我的 routes.php

Route::get('user/settings', 'UserController@getSettings');

和 UserController.php

public function getSettings(){
    return View::make('user.settings');
}

但是输出是这个错误:

{"error":{"type":"ErrorException","message":"Undefined offset: 0","file":"H:\\dev    \\xampp\\htdocs\\lchat\\vendor\\laravel\\framework\\src\\Illuminate\\Support    \\Collection.php","line":470}}

编辑:错误在视图中。我修好了。

问题 2:通过 ajax 加载的页面本身包含另一个 ajax 发布请求。但它不再通过 ajax 发送数据。刷新页面以发送数据。

jquery 代码:

$('#settings :submit').click(function(e){
    e.preventDefault();
    $.post(BASE +  'settings/save', {
        'userName' : $('#userName').val()
        }, function(data) {
            return 'OK';
    });
});

问题解决:我使用.on绑定事件:

$(document).on('click', '#settings :submit', function(e){ ... } );

它正在工作... 谢谢大家。

【问题讨论】:

  • 您的视图是否可以在 ajax 之外(在我们的浏览器上)工作? http://localhost/project/public/user/settings
  • 我是个白痴 :|视图本身有这个错误!我修好了它。现在它正在工作。无论如何,我花了 1 个小时才完成这项工作!
  • 这就是错误的工作方式,您永远不会记得查看您需要的位置。 :) 很好,它现在正在工作。享受 Laravel!

标签: php jquery ajax laravel laravel-4


【解决方案1】:

好吧,首先,您的观点有误。您遇到的错误是指您尝试访问的数组实际上没有您尝试使用的密钥 ($arr[0])。

一旦你用视图本身修复了错误,它应该可以正常工作。 JavaScript 将以 HTML 格式获取数据,您可以将其插入到您希望它显示的任何位置。

【讨论】:

    【解决方案2】:

    查看文件前使用字符串方法

    return (String) view('Company.allUserAjax');
    

    【讨论】:

    • 谢谢,这对我有用。我试图将我的视图部分传递给 Pusher,它作为一个 javascript 对象通过。使用 (String) 修复它。
    猜你喜欢
    • 2015-03-27
    • 2020-01-06
    • 2023-03-28
    • 2019-12-19
    • 2020-07-21
    • 2021-01-14
    • 2016-11-23
    • 1970-01-01
    • 2018-03-09
    相关资源
    最近更新 更多