Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载哪个PHP模板取决于javascript支持_Php_Javascript - Fatal编程技术网

加载哪个PHP模板取决于javascript支持

加载哪个PHP模板取决于javascript支持,php,javascript,Php,Javascript,我有以下情况: 多步骤注册过程。假设它有4个步骤,每个步骤取决于之前的输入。这可以通过使用或不使用Javascript来解决 没有JS:每个步骤都会附加一个“继续”按钮 使用JS:当上一步完成时,下一部分将自动显示给用户。(无“继续”-按钮存在 问题是:我的模板引擎如何知道显示哪一个?有或没有“继续”按钮?在PHP加载模板之前,您不能只测试JS代码块来确定它是否已启用 我计算出的一种方法是,访问的初始加载可能会向服务器上的文件发送一个ajax请求,该请求的唯一目的是将$\u SESSION['J

我有以下情况:

多步骤注册过程。假设它有4个步骤,每个步骤取决于之前的输入。这可以通过使用或不使用Javascript来解决

没有JS:每个步骤都会附加一个“继续”按钮 使用JS:当上一步完成时,下一部分将自动显示给用户。(无“继续”-按钮存在

问题是:我的模板引擎如何知道显示哪一个?有或没有“继续”按钮?在PHP加载模板之前,您不能只测试JS代码块来确定它是否已启用

我计算出的一种方法是,访问的初始加载可能会向服务器上的文件发送一个ajax请求,该请求的唯一目的是将$\u SESSION['JS\u ENABLED']=1或类似的设置


我不喜欢这样。对该文件的HTTP请求很可能会失败,因为我相信访问者已经禁用了JS


我想我需要一种新的方法。请启发我=)

你可以这样做:

<p>Step ....</p>
<a id="proceed_link" href="no_script_proceed_link.php">Proceed</a>
<script type="text/javascript">
// example with jquery
$.getScript('script/url.js',function(){ 
   $('#proceed_link').hide();
   // other stuff when scripts are available
});
</script>
步骤

//jquery示例 $.getScript('script/url.js',function(){ $(“#继续链接”).hide(); //脚本可用时的其他内容 });
我不太明白你的意思。在没有测试的情况下,我假设它会在脚本实际运行之前显示链接,并且在运行之前不会隐藏它?好的想法是加载基本页面并通过javascript获取javascript文件,这样您就知道启用了javascript。没有javascript支持时不加载脚本。是的,你的假设是正确的,我不确定我是否理解。您有一个多步骤注册表单(类似于向导风格的界面),但为什么在这一点上涉及JavaScript?你就不能把第一页--第二页--第三页等等。。作为正常的单独形式?每个都有一个“继续”(提交)按钮?我必须在这里遗漏一些关键的谜题……”我不喜欢这样。对该文件的HTTP请求很可能会失败,因为我相信访问者已经禁用了JS。是的,它可能会失败,但不会比任何其他页面加载都失败。如果您真的担心这种可能性,您可以尝试从每个非增强页面执行AJAX调用-例如,如果您有4个页面,AJAX调用失败的可能性(除了没有javascript支持外)非常低。Lucanos:是的,您是对的。我考虑了这样一个事实:如果会话变量没有设置为true,那么对所有页面加载进行ajax调用不会有太大的危害。如果不启用JS,则不会发生任何事情,也不会浪费任何资源。好。200b可能是额外的。IE将尝试将会话变量设置为true,直到成功。如果有……:)Java Dinker:Webb2.0(你知道:)