[英]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.