在设置页面上触发Ajax请求

时间:2018-01-15 08:23:34

标签: ajax laravel laravel-5 octobercms octobercms-plugins

我正在编写一个插件,在后端设置中定义了一些字段。

该字段之一是包含按钮的部分字段,由于数据属性API,它会触发 Ajax 请求。

<button type="button" class="btn btn-danger" data-request="onReset">
    My button
</button>

我应该在哪里放置“onReset()”功能?我试图把它放在我的设置模型中,甚至尝试创建一个设置控制器(虽然没有必要使用设置页面),但我总是得到以下错误:

Ajax handler 'onReset' was not found

我不知道如何能够触发onReset()功能,熟悉Laravel / OctoberCMS的人能指出正确的方向吗?

由于

2 个答案:

答案 0 :(得分:0)

如果您有onReset事件,则在HTML表单中,您可以在其中添加您的电话:

function updateForm()
{
    $.each($('form').find(":input"), function(){  
        $.uniform.update($(this));  
    });  
}

<form onReset="updateForm();">

在这个link中,您可以在点击事件中自行订购:

$(document).ready(function() {
    $("input:reset").click(function() {       /click event
        this.form.reset();                    
        window.alert($("input:text").val());       
        return false;                          
    });
});

答案 1 :(得分:0)

设置由\System\Controllers\Settings呈现,因此您编写的内容将由\System\Controllers\Settings控制器类处理,

  

所以我们需要扩展\System\Controllers\Settings,我们可以添加动态   那里的方法,

plugin's boot method内你需要编写此扩展代码

  

我在此示例中将onReset处理程序重命名为onPrefixReset以避免任何其他冲突。

public function boot() {

    \System\Controllers\Settings::extend(function($model) {

        $model->addDynamicMethod('onPrefixReset', function() {
            \Flash::success('You did it!');
            // OR
            //return ['some data data'];
        });
    });
}

onPrefixReset:我们在这里添加了一些Prefix,因此我们不小心覆盖了内部原始方法。

现在位于_partial

<button type="button" class="btn btn-danger" data-request="onPrefixReset">
    My button
</button>

所以现在这个 onPrefixReset ajax处理程序在\System\Controllers\Settings中定义为我们动态执行;)它将处理您的请求。

您可以从此处返回任何数据,并会在back-end settings page收到。