使用Ajax需要不同的php页面

时间:2014-07-29 11:19:39

标签: javascript php jquery html ajax

我想使用jquery ajax通过要求不同的php文件来更改div elemnt的内容。

这里是ajax代码:

  $.ajax({
         url:"/project/Functions/project_functions.php",
         type:"POST",
         data:{
            functions:num
         },
         success:function(result){
            $("#right_bot").html(result);
         }
      });

project_functions.php类似于:

 $result = '<?php require "Panels/Project/Main/main.php" ?>';
 echo $result;

我可以看到输出的值,但是html注释了php部分

 <!--?php require "Panels/Project/Main/main.php" ?-->

它只是注释掉了php。有没有办法将不同的php文件加载到我的div中?

main.php 文件中,它有php代码,html代码和一些样式标记。我可以使用ajax将所有这些加载到div元素中吗?或者我必须回复所有的HTML代码?

3 个答案:

答案 0 :(得分:1)

你不能这样做。你想要的是所有PHP都在服务器上运行,只有结果必须返回。

你不能将php代码发送回javascript并尝试在那里运行,PHP是一种服务器端语言,它只能在服务器上运行。 Javascript是客户端,它只能在浏览器中运行 如果您将<?php echo 123; ?>发送回Javascript,那么您完全作为结果,而不是123。

您的案例中的解决方案是让 project_functions.php 真正需要它。这将包括main.php,它的所有功能和输出。

require "Panels/Project/Main/main.php";

有人建议阅读: http://www.codeconquest.com/website/client-side-vs-server-side/


可能对您有所帮助的技巧:将链接粘贴到您的urlbar,然后将变量添加到其中。您在屏幕上得到的结果是Javascript将输出的结果。注意:这仅适用于method = get,而不适用于post。

在这种情况下,浏览到/project/Functions/project_functions.php并根据上面的代码执行简单的操作。该输出将发送到Javascript。

答案 1 :(得分:0)

在ajax请求8中发送参数,例如类型):

$.ajax({
         url:"/project/Functions/project_functions.php",
         type:"POST",
         data:{
            functions:num, type: "main"
         },
         success:function(result){
            $("#right_bot").html(result);
         }
      });

然后在php文件中获取类型变量:

       if($type == "main") {
          require "Panels/Project/Main/main.php"
       }
       else {
           require "Panels/Project/Main/sthelse.php"
       }

您还应该使用某种相同的函数名称来输出文件的结果;

<?php 
      function printResult() { }


      echo printResult(); 

答案 2 :(得分:-2)

尝试:

$ result = file_get_contents('Panels / Project / Main / main.php');