我有JavaScript,我想在JavaScript中运行包含脚本。我尝试了以下声明:PHP包含在JavaScript中不起作用
outputEl.innerHTML = '<?php include "./change/ud1.php";?>';
当我运行脚本时,我没有得到任何回应。
有人知道为什么我没有得到任何答复,我怎么能解决它?
我试图用html iframe替换PHP include。这工作,但这不是我最好的解决方案。
我有JavaScript,我想在JavaScript中运行包含脚本。我尝试了以下声明:PHP包含在JavaScript中不起作用
outputEl.innerHTML = '<?php include "./change/ud1.php";?>';
当我运行脚本时,我没有得到任何回应。
有人知道为什么我没有得到任何答复,我怎么能解决它?
我试图用html iframe替换PHP include。这工作,但这不是我最好的解决方案。
两种方式:
第一:
<script>
document.write('<?php echo include_once "./change/ud1.php";?>');
</script>
二:
<script type="text/javascript" src="./change/ud1.php"></script>
With:'outputEl.innerHTML = document.write('<?php echo include_once“./change/ud1.php”;?>');'脚本没有响应。 With:'outputEl.innerHTML ='';'我的javascript的其他部分正在丢失他的''text/javascript“'和不工作 – John
试试这个
$("#output1").load("change/ud1.php");
您不能运行PHP的插件ide .js文件。据我所知,你将需要从你的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库),你可以使用类似这样
$(outputEl).load("change/ud1.php");
所以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。
“php只能在你的服务器上执行” - 这是不正确的,因为有用JS编写的PHP解释器,例如[php.js](http://phpjs.hertzen.com/) – feeela
“这个库读取PHP代码并将其转换为JavaScript代码“ –
简单地使用
<script type="text/javascript" src="filename.php"></script>
而且通过此标题( “内容类型:文本/ JavaScript的”);在php文件的顶部。
没有需要在这种情况下
您可以使用响应使用JavaScript直接在要
<div id="outputEl"><?php include "./change/ud1.php";?></div>
如果op不想执行'outputEl.innerHTML ='<?php include”./change/ud1.php“;?>';',那么这是最好的解决方案在某些客户端(JS)事件。 –
这也将正常工作。把这段代码放到你的.php文件中,你可以把脚本放到你的。php
<script type="text/javascript">
outputEl.innerHTML = "<?php include './change/ud1.php';?>";
</script>
这是不正确的做法。您应该将html变成一个php变量,然后将该变量用于JavaScript。如果你使用MVC,那么它很容易。我张贴的答案,而无需使用MVC:
$html = file_get_contents('path/to/YOUR/FILE.php');
在Javascript中
var html = '<?php echo $html; ?>';
您还可以使用jquery
加载php文件的内容在你指定的HTML元素。
$.get("path/to/yourfile.php", function(data, status){
outputEl.innerHTML = data;
});
你不能直接这样做。如果您想更换这样的内容你有以下两种选择
发送AJAX请求到该文件,然后将该文件将发送整个HTML作为成功函数的数据参数,然后你可以使用数据无论你想要的。
或者您必须重定向到该页面,并且您希望将一些数据发送到该文件,那么您可以将其作为获取请求。
<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>
而且可以作为
<script>
window.location.href = "./change/ud1.php"; //And pass any parameters to that file if you wish as a GET request
</script>
让我知道如果您需要任何进一步的帮助
使单引号双引号,并尝试执行步骤2
这不会回答一个问题,应该是一个评论。请参阅[我应该何时评论?](https://stackoverflow.com/help/privileges/comment)。 一旦你有足够的[声望](https://stackoverflow.com/help/whats-reputation),你将可以在任何帖子上[评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- I-DO-代替)。 – Dwhitz
的PHP代码在服务器上呈现,您使用的是Javascript,如果您不在服务器上,则无法呈现PHP。
你不能这样做,因为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";
}
}
}
你想在'innerHTML'中包含什么? HTML回应? –
我在互联网上发现了一些脚本,他们都使用'innerHTML' – John
您需要使用'window.location ='page''加载它[ref](https://www.sitepoint.com/community/t/load-url-with-javascript/1285/4)可能会帮你 –