【问题标题】:Using eldarion-ajax/bootstrap-ajax with laravel. How to make use of the events?在 laravel 中使用 eldarion-ajax/bootstrap-ajax。如何利用事件?
【发布时间】:2014-05-08 21:58:36
【问题描述】:

我想在我的网页上使用 Ajax 丰富用户的 Web 体验。我习惯于使用 jQuery 进行 Ajax 调用,但我遇到了 eldarion-ajax(以前的 bootstrap-ajax -> https://github.com/eldarion/eldarion-ajax)并认为这可能是一个好主意。但是知道一开始就会出现一个问题。我给你举个例子: 我创建了一个表单:

{{ Form::open(array('url' => '/contact/send', 'class' => 'form-outside form-contact ajax')) }}

类 'ajax' 现在应该使表单对 ajax 调用有意义。 我现在转向 JavaScript 代码并使用 eldarion 给我的事件处理程序之一:

$('.form-contact').on("eldarion-ajax:begin", function(evt, $el) {
        $.post(
            $( this ).prop( 'action' ),
            {
                "_token": $( this ).find( 'input[name=_token]' ).val()
            },
            function( data ) {
                //here comes the response
            },
            'json'
        );
    });

据我了解,当有人现在单击表单中的 ob 提交时,此事件 (eldarion-ajax:begin) 在请求开始时被触发。当我使用 $.post 函数将表单的数据实际发送到 laravel 的自定义控制器类时,我可以使用控制器在 function( data ) {} 部分中发回给我的响应。

那么我为什么以及如何利用其他 eldarion 事件,例如 eldarion-ajax:success?据我了解 eldarion-ajax:success 我应该使用从控制器返回给我的数据,以防一切正常。这有任何意义吗?我是否应该不使用 $.post 并使用 eldarion 以不同的方式处理这个问题?怎么样?

任何建议将不胜感激!

干杯!

【问题讨论】:

    标签: php jquery ajax twitter-bootstrap laravel


    【解决方案1】:

    据我了解该库,您实际上不需要发出自定义请求 - 因为您已经指定了 ajax 类。来自文档

    所有事件都在声明为 ajax 的元素上触发

    此外,可以将几个元素声明为 ajax,使用 lib 的事件可以通过定义单个事件处理程序(可能是事件委托)来轻松处理,例如。 from the doc

    $(document).on("eldarion-ajax:success", [data-prepend-inner], function(evt, $el, data) {
        // different actions can be performed based on different elements
        var $node = $($el.data("prepend-inner"));
        $node.data(data.html + $node.html());
    });
    

    【讨论】:

    • 嘿code-jaff,是的,谢谢。但是,如果我使用 eldarion-ajax:begin 我必须检查哪个元素已被触发并执行必要的操作,例如 $.post 将提交的数据传输到 php 端的控制器脚本,还是我错了?该操作始终取决于触发 ajax 调用的元素。如果我使用 $.post,我会在 $.post 函数中收到来自服务器的响应,并且不需要 eldarion-ajax:success 或者我错过了什么?
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 2019-06-20
    • 2020-08-19
    • 2013-07-05
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    相关资源
    最近更新 更多