十月 CMS - AJAX 表单从 1 个组件提交到另一个
October CMS - AJAX Form submit from 1 component to another
我正在十月CMS做一个网站。
我创建了 1 个组件让我们说 Component_1 & Component_2
现在,我想 post 数据从 Component_1 到 Component_2 通过表单 [via AJAX data-attributes APi]
所以,在我的 component_1 中有一个表格:
<form method="POST" data-request="Component_2::onSubmit" data-request-flash>
并且在 Component_2 我有方法 onSubmit(){ //Nothing Here }
当我提交表单时出现错误:
AJAX handler 'Component_2::onSubmit' was not found.
然后我在 Component_1::onSubmit 中有相同的功能,当我将此表单提交给 Component_1::onSubmit 时,我没有收到任何错误。
那么,您能否建议我通过 AJAX 从 component_1 提交表单到 component_2
谢谢
嗯,它应该可以工作,确保您使用的是 component alias
名称,而不是使用其 class name
、
just to inform that we are not passing data from one component to another
its just a regular ajax request
and we send data from browser to component
如果我声明 class class componentOne { ... etc
我们将不会使用这个。
然后当 we include
它在页面内时会有 alias name
你需要使用那个 alias name
来请求 ajax.
更新(使用不同页面的 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>
您需要注意 url 另一页
{{ 'testing'|page }}
will generate that page's url http://timeloger.test/testing
you need to pass page File Name
as parameter there {{ 'page-name'|page }}
-> it will generate proper url
现在 ajax api
可以从中请求 another given page url
和 fetch data
。
我正在十月CMS做一个网站。
我创建了 1 个组件让我们说 Component_1 & Component_2
现在,我想 post 数据从 Component_1 到 Component_2 通过表单 [via AJAX data-attributes APi]
所以,在我的 component_1 中有一个表格:
<form method="POST" data-request="Component_2::onSubmit" data-request-flash>
并且在 Component_2 我有方法 onSubmit(){ //Nothing Here }
当我提交表单时出现错误:
AJAX handler 'Component_2::onSubmit' was not found.
然后我在 Component_1::onSubmit 中有相同的功能,当我将此表单提交给 Component_1::onSubmit 时,我没有收到任何错误。
那么,您能否建议我通过 AJAX 从 component_1 提交表单到 component_2
谢谢
嗯,它应该可以工作,确保您使用的是 component alias
名称,而不是使用其 class name
、
just to inform that we are
not passing data from one component to another
its just a regularajax request
and we send data frombrowser to component
如果我声明 class class componentOne { ... etc
我们将不会使用这个。
然后当 we include
它在页面内时会有 alias name
你需要使用那个 alias name
来请求 ajax.
更新(使用不同页面的 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>
您需要注意 url 另一页
{{ 'testing'|page }}
will generate that page's urlhttp://timeloger.test/testing
you need to passpage File Name
as parameter there{{ 'page-name'|page }}
-> it will generate proper url
现在 ajax api
可以从中请求 another given page url
和 fetch data
。