Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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
Javascript JQuery load()赢了';不能识别前php包含项_Javascript_Php_Jquery - Fatal编程技术网

Javascript JQuery load()赢了';不能识别前php包含项

Javascript JQuery load()赢了';不能识别前php包含项,javascript,php,jquery,Javascript,Php,Jquery,我有一个页面,它使用jQuery中的load()方法加载内容 下面是它的外观(我的主页): 一些内容 负载 然后我有我的contentToLoad.php,这是一个php模块,使用会话、文件中的函数等 在header.php中,我有我的head标记、一个session_start(),以及contentToLoad.php正常工作所需的所有文件 但是我的contentToLoad.php似乎无法访问header.php的文件和声明 我真的需要在contentToLoad.php的顶部重写所有

我有一个页面,它使用jQuery中的load()方法加载内容

下面是它的外观(我的主页):


一些内容
负载
然后我有我的contentToLoad.php,这是一个php模块,使用会话、文件中的函数等

在header.php中,我有我的head标记、一个session_start(),以及contentToLoad.php正常工作所需的所有文件

但是我的contentToLoad.php似乎无法访问header.php的文件和声明

我真的需要在contentToLoad.php的顶部重写所有这些吗?或者有没有一种解决方案可以让contentToLoad.php识别header.php中的代码


谢谢

Jquery load只加载html,您应该包括它自己喜欢的php

<?php 
include_once( __DIR__ .'/contentToLoad.php');
?>

contentToLoad.php
中的所有包含更改为
include_once(uu DIR_u.'/include_file.php')

Jquery load只加载您应该包含php的html,就像它自己一样

<?php 
include_once( __DIR__ .'/contentToLoad.php');
?>

contentToLoad.php
中的所有包含更改为
include_once(uu DIR_u.'/include_file.php')

您误解了PHP和JS的交互方式,因此为了回答您的问题,我将对此进行解释,您应该自己找出答案

PHP代码总是在页面加载之前运行(除了一些我们并不真正关心的非常小的异常),或者简单地说,“当页面为白色时”。PHP完成执行后,它发送并显示给客户端的输出

现在,您要做的是在页面已经加载之后运行脚本,使用javascript,这很好,但服务器看不出这与仅加载索引有任何区别,然后在几秒钟后的新选项卡中打开contenToLoad.php,您所做的只是通过javascript指示浏览器在div中加载信息


这两个脚本在不同的时间、不同的进程中作为不同的实例运行,并且不知道另一个脚本是否存在。这与将一个PHP脚本包含在另一个PHP脚本中非常不同,这在一个非常基本的级别上与将脚本复制粘贴到包含它的位置相同,因此,它们显然是同时运行的,您包含的脚本可以访问宿主脚本声明的任何信息。

您误解了PHP和JS的交互方式,因此为了回答您的问题,我将解释一下,您应该自己找到答案

PHP代码总是在页面加载之前运行(除了一些我们并不真正关心的非常小的异常),或者简单地说,“当页面为白色时”。PHP完成执行后,它发送并显示给客户端的输出

现在,您要做的是在页面已经加载之后运行脚本,使用javascript,这很好,但服务器看不出这与仅加载索引有任何区别,然后在几秒钟后的新选项卡中打开contenToLoad.php,您所做的只是通过javascript指示浏览器在div中加载信息


这两个脚本在不同的时间、不同的进程中作为不同的实例运行,并且不知道另一个脚本是否存在。这与将一个PHP脚本包含在另一个PHP脚本中非常不同,这在一个非常基本的级别上与将脚本复制粘贴到包含它的位置相同,因此,它们显然同时运行,并且您的包含脚本可以访问宿主脚本声明的任何信息。

这意味着我必须在contentToLoad.php中重新包含header.php中的文件?不,不,不,只包括
contentToLoad.php中的文件,如果您在其中有更多包含,请更改要
include_once(u DIR_u.'/include_filename.php'),我还修复了您的标题在包含中有空格的问题,我在示例代码中更改了它。因此我必须重写de session_start()?我也不想将文件从header.php中移出,因为它在其他地方使用:(不,就这样吧,把你的代码改成我做的例子,看看它是否有效,应该有效。只要告诉我它是否有效就可以了。这意味着我必须将header.php中的文件重新包含在contentToLoad.php中?不,不,只要将
contentToLoad.php中的文件包含在
contentToLoad.php
中就可以了,如果你有更多的include在里面的话为了
include_once(uuu DIR_uu./include_filename.php');
,我还修复了您的头文件在include中有一个空格,我在示例代码中对其进行了更改。因此我必须重写de session_start()?我也不想将文件从header.php移出,因为它在其他地方使用:(不,照原样做,把你的代码改成我做的例子,看看它是否有效,它应该有效。告诉我它是否有效。谢谢你的解释!解决这个问题的解决方案是什么?我必须重写包含的文件还是其他可能的东西?
contentToLoad.php
(或者您希望通过js执行和加载的任何脚本)如果您也访问,则需要能够运行,因此是的,您需要重新包含所有内容。如果您还需要复制/粘贴代码(例如,获取会话数据、验证用户、将用户信息存储在数组中)我建议将这些文件移到另一个文件中,并将所述文件包含在您需要的位置,重复代码非常糟糕。@JaredFarrish从他的问题中我了解到,他试图从
contentToLoad.php
访问
header.php
中声明的函数和值,正如我所说的,这似乎是可能的(如果您一个接一个地包含文件,您可以这样做)但不是这样,因为他稍后会通过jquery加载它。我可能错了,但我认为另一个答案是误导性的,因为它指的是相对路径,而事实并非如此
<?php include_once ("inc/header.php"); ?>
Some Content
<button onclick="$('#loadContainer').load('contentToLoad.php')">Load</button>
<div id="loadContainer">
</div>
<?php include_once ("inc/footer.php"); ?>