PHP中的PHP包含无效

时间:2017-07-02 07:06:37

标签: javascript php

我有JavaScript,我想在JavaScript中运行包含脚本。我尝试了以下声明:

outputEl.innerHTML = '<?php include "./change/ud1.php";?>';

当我运行脚本时,我没有得到回复。

有人知道为什么我没有得到任何回复以及我如何解决它?

我尝试用html iframe替换PHP include。这有效,但这对我来说不是最好的解决方案。

13 个答案:

答案 0 :(得分:11)

在这种情况下无需使用javascript

您可以直接在需要的地方使用响应

<div id="outputEl"><?php include "./change/ud1.php";?></div>

答案 1 :(得分:7)

您无法在.js文件中运行php。据我所知,你需要从你的js文件中获取php文件的内容。

这是一个简单的实现。

var xhr = new XMLHttpRequest();

xhr.onload = function () {
    outputEl.innerHTML = this.response;
};

xhr.open('GET', './change/ud1.php', true); // you may need to correct the url to be relative to the js file
xhr.send();

使用jquery可能更容易,更健壮,在这种情况下(一旦你包含了jquery库),你可以使用这样的东西

$(outputEl).load("change/ud1.php");

答案 2 :(得分:4)

  • php是一种服务器端语言。
  • JavaScript是客户端语言。

所以 php只能在您的服务器上执行,并且JavaScript会在用户的浏览器上执行。

没有办法在JavaScript(浏览器)中运行php代码。所以你需要像这样使用ajax。

var xhttp = new XMLHttpRequest();

xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        // server sent data successfully in this.responseText variable
        document.getElementById("output1").innerHTML = this.responseText;
    }
};

//Request data from a server
xhttp.open("GET", "path/to/php/include-script.php", true);
xhttp.send();

详细了解ajax here

答案 3 :(得分:3)

您还可以使用jquery在指定的html元素中加载php文件的内容。

 $.get("path/to/yourfile.php", function(data, status){  
    outputEl.innerHTML = data;
});

答案 4 :(得分:2)

简单使用

SELECT id, upload_key 
FROM product_data 
WHERE (status = 0 or updated = 0) and uploaded_on is NULL;

同样传递此标题(&#34;内容类型:text / javascript&#34;);在php文件的顶部。

答案 5 :(得分:2)

This is not right approach. You should take html into a php variable and then use that PHP variable into JavaScript. If you are using MVC then its quite easy. I posted answer without using MVC :

$html = file_get_contents('path/to/YOUR/FILE.php');

In Javascript

var html = '<?php echo $html; ?>';

答案 6 :(得分:2)

你不能直接这样做。如果要以这种方式替换内容,可以使用以下两个选项

  1. 将AJAX请求发送到该文件,然后该文件将整个html作为success函数的数据参数发送,然后您可以在任何地方使用该数据。

  2. 或者您必须重定向到该页面,并且您希望将某些数据发送到该文件,然后您可以将其作为获取请求。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    
    <script>    
        $.ajax({
           type: "POST",
           url: "<?php include "./change/ud1.php"; ?>",  //ensure URL is correct
           data: { }, //send some data if you want to that file or else remove this line
           dataType: "html",
           success: function(data) {
               if($.trim(data)) {
                    $('#outputEl').html(data);
               } else {
                    alert("Something went wrong!!");
               }
           }, error: function() {
               alert("ERROR!");
           }
       });
    </script>
  3. 您可以执行第2步

    &lt;script&gt;
        window.location.href = "./change/ud1.php";  //And pass any parameters to that file if you wish as a GET request
    &lt;/script&gt;
    

    如果您需要任何进一步的帮助,请告诉我

答案 7 :(得分:2)

单引号加双引号并尝试

答案 8 :(得分:1)

两种方式:

第一:

 <script>
      document.write('<?php echo include_once "./change/ud1.php";?>');
   </script>

第二:

<script type="text/javascript" src="./change/ud1.php"></script>

答案 9 :(得分:1)

试试这个

$("#output1").load("change/ud1.php");

答案 10 :(得分:1)

PHP代码在服务器上呈现,您在客户端上使用Javascript,如果您不在服务器上,则无法呈现PHP。

答案 11 :(得分:1)

您无法执行此操作,因为 PHP 代码会在 JavaScript 之前呈现。有很多替代方法可以做到这一点:

如果 outputEl 是div元素的ID:

1-没有jQuery / JavaScript

<div id="outputEl"><?php include "./change/ud1.php";?></div>

2-使用jQuery加载功能

$("#outputEl").load('./change/ud1.php');

3-使用JavaScript功能

window.onload = function() {
  if (XMLHttpRequest)
    var x = new XMLHttpRequest();
  else
    var x = new ActiveXObject("Microsoft.XMLHTTP");
  x.open("GET", "./change/ud1.php", true);
  x.send();
  x.onreadystatechange = function() {
    if (x.readyState == 4) {
      if (x.status == 200)
        outputEl.innerHTML = x.responseText;
      else
        outputEl.innerHTML = "Error loading document";
    }
  }
}

答案 12 :(得分:-1)

这也会奏效。将此代码放在.php中,您可以将脚本放在.php

<script type="text/javascript">
   outputEl.innerHTML = "<?php include './change/ud1.php';?>";
</script>