繁体   English   中英

在网页php部分中使用没有脚本后备的Ajax API的OctoberCMS

[英]OctoberCMS using Ajax API with no-script fallback in page php section

我目前的简单联系方式基础是:

在php部分中包含表单和表单验证的页面,具有如下本机功能:

function onStart(){if(Request::isMethod('post')) /* do stuff */}

以上是我的“无脚本”解决方案。

现在,当我想启用OctoberCMS的Javascript API时,必须在php部分中调用一个自定义函数,例如:

function onSubmit(){/* do stuff */}

我如何将二者结合在一个函数中,以便/* do stuff */触发器,而不管请求是通过Ajax还是纯PHP发送的?

我找到了答案。

OctoberCMS提供了一种本机方法,使表单可以通过使用另一种实现表单的方式来触发自定义onMyfunction()

对于可能遇到相同问题的任何人,下面是代码:

<?php
function onMyfunction(){}
?>
==
<html>
{{ form_open({ request: 'onMyfunction', id: 'my-form' }) }}
</html>

不管是否启用Javascript,都会将发布数据发送到php处理程序。 现在,您只需要使用以下命令启动Ajax API:

<script>
$('#my-form').submit(function(evt){
    evt.preventDefault();
    $(this).request('onMyfunction',{})
});
</script>

您可以使用html <noscript>标记吗? 在您的CSS中,您将放置.noscript {display:none;} .script {display:block;}然后在您的页面,组件模板,布局等中,您可能会根据用户是否使用脚本而改变两种形式。 他们可以使用相同的onSubmit函数。

与我所建立的任何网站的任何用户交互都假定某些网站可能不使用Javascript,因此我默认使用标准格式,而不是js或ajax。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM