Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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
使用html但不使用php的Javascript对象_Javascript_Php_Html - Fatal编程技术网

使用html但不使用php的Javascript对象

使用html但不使用php的Javascript对象,javascript,php,html,Javascript,Php,Html,我在一个使用文本框的网站上工作,并对用户提交的内容进行处理 在我的索引页面上,我不使用PHP(全部为HTML),我希望使用的Javascript选项卡工作得非常好。但是,在用户输入并提交某些内容后,下一个加载的页面将显示PHP。PHP页面调用一个函数来打印HTML,但即使此页面与上一个索引页面完全相同,选项卡也无法工作 ... <article id="navtabs" class="grid col-full"> <h2>Tabs</h2>

我在一个使用文本框的网站上工作,并对用户提交的内容进行处理

在我的索引页面上,我不使用PHP(全部为HTML),我希望使用的Javascript选项卡工作得非常好。但是,在用户输入并提交某些内容后,下一个加载的页面将显示PHP。PHP页面调用一个函数来打印HTML,但即使此页面与上一个索引页面完全相同,选项卡也无法工作

...
<article id="navtabs" class="grid col-full">
    <h2>Tabs</h2>
    <div class="">
        <ul class="tabs clearfix">
            <li><a href="#tab1">First</a></li>
            <li><a href="#tab2">Second</a></li>
            <li><a href="#tab3">Third</a></li>
        </ul>
        <div class="tab_container">
            <article id="tab1" class="tab_content">
                <p>Lorem ipsum dolor sit amet</p>
            </article>

            <article id="tab2" class="tab_content">
                <h6>Heading</h6>
                <p>Lorem ipsum dolor sit amet</p>
            </article>

            <article id="tab3" class="tab_content">
                <h6>Heading</h6>
                <p>Lorem ipsum dolor sit amet</p>
            </article>
         </div>
      </div>
</article>
...
你知道为什么这在只使用HTML而不是放在PHP函数中时会起作用吗

编辑澄清:在有效的版本中,它只是简单的HTML。在这个版本中,我做了一个HTML的回声。这是失败的版本。

简单回答

你知道为什么这在只使用HTML而不是放在PHP函数中时会起作用吗

他们都很不一样。Javascript是客户端编码,PHP是服务器端编码


你应该真正理解它们之间的区别。语法也不同。

如果HTML是正确的,javascript是正确的,并且已加载,那么HTML是来自静态文件还是由PHP生成就没有区别了。浏览器仍然将其视为HTML(PHP是服务器端的,因此浏览器永远不会看到),javascript在浏览器中运行

这给我们留下了以下可能性:

  • 通过PHP生成的HTML在某种程度上是不同的(我知道你说不是,但仔细检查)
  • javascript文件不会第二次加载

  • 这是假设您正在加载用PHP生成的整个页面-如果您开始在ajax请求中添加位,那么情况会发生变化,因为您在document ready中设置了tab code,并且只看到页面的原样。

    您可以
    echo
    it,我就是这么做的。我应该说明的。我读这篇文章的时候也是这么想的。最好能理解脚本被回送的过程,它是完全相同的HTML。我试着获取原始页面,并简单地将其封装在PHP中,然后使用echo打印它,但最终失败了。我假设javascript文件正在加载,因为我在HTML中没有做任何更改。是的,整个页面都使用PHP(只是一个简单的回显),你是说你已经将整个HTML复制成一个字符串,然后用PHP回显?可能是引号的问题。您需要检查生成的HTML是否匹配(即加载页面,在浏览器中查看源代码(通常在右键单击菜单上)然后比较这两个页面的HTML源代码。控制台怎么说?控制台是空的,没有错误或警告。查看页面源代码并进行比较?太好了,谢谢!页脚包含在回音中,它包含Javascript正常运行所需的一些内容。
    $(document).ready(function() {
    ...
    
    //TABS
    var tabContents = $(".tab_content").hide(), 
        tabs = $("ul.tabs li");
    
    tabs.first().addClass("active").show();
    tabContents.first().show();
    
    tabs.click(function() {
        var $this = $(this), 
            activeTab = $this.find('a').attr('href');
    
        if(!$this.hasClass('active')){
            $this.addClass('active').siblings().removeClass('active');
            tabContents.hide().filter(activeTab).fadeIn();
        }
        return false;
    }); 
    ...
    });