10月CMS - AJAX表单从1个组件提交到另一个组件

时间:2018-01-22 14:54:24

标签: php laravel octobercms octobercms-plugins octobercms-widgets

我正在10月CMS制作一个网站。

我创建了1个组件,让我们说Component_1& Component_2

现在,我想通过表格[通过AJAX数据属性APi]将数据从Component_1发布到Component_2

所以,在我的component_1中,我有一个表格:

{{1}}

在Component_2中我有方法onSubmit(){// Nothing Here}

当我提交表格时,我收到错误:

{{1}}

然后我在Component_1 :: onSubmit&中有相同的功能。当我将此表单提交给Component_1 :: onSubmit时,我没有错误。

那么,您能否建议我通过AJAX从component_1提交表单到component_2

由于

1 个答案:

答案 0 :(得分:1)

嗯它应该有用,确保您使用component alias名称而不是使用class name

  

只是告知我们not passing data from one component to another只是ajax request,我们从browser to component发送数据

如果我声明class class componentOne { ... etc我们将不会使用此内容。

然后当we include在页面内部alias name时,您需要使用alias name来请求ajax。

enter image description here

更新(使用不同页面的ajax处理程序)

我们需要使用ajax JavaScript API它会给我们更多的灵活性

您可以使用此代码

<!-- current page is `test` 
we are requesting ajax request on anohter `testing` page which is having 
compoTwo component and having `onAjaxReq` ajax handler -->
<button onClick="requestAnotherPage(this)" type="button" class="btn btn-danger" >
    My button
</button>

<script>
function requestAnotherPage(th) {
    $(th).request('compoTwo::onAjaxReq', {
        url: "{{ 'testing'|page }}", // <- this option
        // url: "http://timeloger.test/testing", 
        flash: 1,
        data: { id: 2, name: 'hardik'},     
        handleFlashMessage: function(message, type) {
            $.oc.flashMsg({ text: message, class: type })
        },
        success: function(data) { console.log('success'); this.success(data); }
    });
}
</script>

你需要照顾另一页的网址

  

{{ 'testing'|page }}会生成该页面的网址http://timeloger.test/testing,您需要将page File Name作为参数传递给{{ 'page-name'|page }} - &gt;它会生成正确的URL

现在ajax api可以向another given page urlfetch data提出请求。