通过Ajax加载后在html块中调用javascript

通过Ajax加载后在html块中调用javascript,javascript,php,ajax,Javascript,Php,Ajax,所以我有一个PHP页面,可以双向加载。它可以使用includes()直接嵌入到页面上,也可以使用AJAX根据用户需求加载第一个页面。我的问题来自以下代码行: echo "<script>"; echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time

所以我有一个PHP页面,可以双向加载。它可以使用includes()直接嵌入到页面上,也可以使用AJAX根据用户需求加载第一个页面。我的问题来自以下代码行:

echo "<script>";
    echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
    echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
echo "</script>";
echo”“;
回显“we_开始幻灯片”(““$we_gallery['gallery_name']”)、“$we_gallery['display']->output()”、“$we_gallery['settings']['slide_time']”;”;
echo“we_slide_show_BTN(“$we_gallery['gallery_name'])”;”;
回声“;

这在直接加载时非常有效。然而,正如您所知,AJAX在加载时并不运行Java脚本。因为代码需要只有PHP脚本才知道的动态变量,所以我不能只调用AJAX函数中的函数。我想知道是否还有其他方法可以告诉JavaScript在加载后运行该脚本标记的内容?

将js脚本放在ajax done函数中

$.ajax({

}).done(function() {
  <?php
     echo "<script>";
     echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
     echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
     echo "</script>";
  ?>
});
现在,在处理ajax请求并将该请求发送回的页面上,不再使用ajax done,而是将脚本与请求一起发送回

$request = "<script>";
$request .= "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
$request .= "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
$request .= "</script>";
$request=”“;
$request.=“we_开始放映幻灯片”(“$we_gallery['gallery_name']”、“$we_gallery['display']->output()”、“$we_gallery['settings']['slide_time']”;”;
$request.=“我们的幻灯片放映BTN(“$we\u gallery['gallery\u name'”);”;
$request.=“”;
所以答案是eval()


通过向脚本标记添加id,我可以将脚本拉入回调函数,然后使用eval()执行它。感谢a.lau为我指明了正确的方向。

ajax无法访问PHP变量。ajax加载代码。加载原始AJAX时,这些变量不存在。我需要在Ajax运行后获取它。您是否将Ajax请求发送到php文件。如果是这样的话,就把它们放在一个会话中,在处理ajax请求的代码中找到B,我该怎么做呢?检查php手册,基本上启动会话并将变量保存到会话值中。然后在处理ajax请求的文件中启动会话,并根据会话值设置变量。Ajax可以使事情变得复杂。这应该对您有所帮助:)您可能应该在ajax的
success
部分做一些事情。如果只是回显,则可以将命令作为字符串返回,必要时可以对其求值,否则,将数据作为json检索会更智能。
$request = "<script>";
$request .= "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
$request .= "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
$request .= "</script>";
eval(document.getElementById('slide_start').innerHTML);