Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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 如何在ajax响应页面中执行包含javascript函数的页面?_Php_Javascript_Ajax - Fatal编程技术网

Php 如何在ajax响应页面中执行包含javascript函数的页面?

Php 如何在ajax响应页面中执行包含javascript函数的页面?,php,javascript,ajax,Php,Javascript,Ajax,在这里,我花了整整一天的时间来解决我现在面临的问题。让我解释一下 *photo.php - (Main php file)* …. …. (header goes here…) …. *<script src="scripts/photogallery.js" type="text/javascript"></script>* …. …. (ajax refresh script goes here…) …. **http1.open("GET", "photo_x

在这里,我花了整整一天的时间来解决我现在面临的问题。让我解释一下

*photo.php  - (Main php file)*
….
….  (header goes here…)
….
*<script src="scripts/photogallery.js" type="text/javascript"></script>*
….
….  (ajax refresh script goes here…)
….
**http1.open("GET", "photo_x.php?id1=" + escape(sIdtn1), true);**
….
…. ( body/coding goes here…)
….
…. **<script type="text/javascript"> initGalleryScript(); </script> // this script is inside the ajax refresh tag**
….

*Photo_x.php  - (ajax refresh file)*
….
….  (coding goes here…)
….
…. **<script type="text/javascript"> initGalleryScript(); </script> // I need to execute this script which is not working currently.**
*photo.php-(主php文件)*
….
….  (标题在这里…)
….
**
….
….  (这里是ajax刷新脚本…)
….
**http1.open(“GET”、“photo_x.php?id1=“+escape(sIdtn1),true)**
….
…. (正文/编码在这里…)
….
…. ** initGalleryScript();//此脚本位于ajax刷新标记内**
….
*Photo_x.php-(ajax刷新文件)*
….
….  (这里是编码…)
….
…. ** initGalleryScript();//我需要执行这个脚本,它目前不工作**
请帮助我找到在ajax响应页面中执行javascript函数的解决方案…


提前感谢。

您的问题不太清楚您真正想要做什么,但仅从问题的主题判断,我猜您希望从服务器发出ajax请求,并获取一些javascript,以便在当前页面的上下文中执行

如果您需要从服务器返回的只是数据,那么可以使用JSON或JSONP,这是一种以javascript格式从服务器返回数据的方法,其中数据表示为javascript数据结构,可以由浏览器中的javacscript引擎执行并解析

在某些情况下,ajax请求本身在主javascript中包含回调函数的名称,您希望JSONP响应调用该函数。下面是关于此回调如何工作的讨论:

如果您为从服务器返回的内容编写自己的响应处理程序,那么可以对返回的代码调用eval,并且可以在响应中添加任何类型的javascript,包括代码。这样做时需要注意一些安全问题,但它也可以这样工作


如果代码是提前知道的(通常是这样),那么您可能实际上不需要从服务器返回代码。您可以只在原始页面中包含代码,也可以通过插入脚本标记动态加载代码,然后ajax响应可以只是数据。

通常ajax响应处理程序允许您指定“成功”处理程序。在这里,您可以调用任何其他需要的函数。您不需要指定正在使用的ajax库(如果有的话),因此这是最好的选择。您不能将函数放在JSON中。我主要考虑的是JSONP(虽然我最初编写了JSON),但无论如何,我已经修改了答案。您可以将函数写入JSON中的字符串,然后
eval()
。不过那会很难看的。