我正在尝试将一个变量从javascript传递到一行PHP include代码中,以创建一个更动态的脚本。但到目前为止,我还没有做到这一点。
逻辑如下:
看看下面的代码--我想用一个javascript变量替换'textfile.txt‘。
descrip2.innerHTML = "<?php include('textfile.txt'); ?>";要显示以下内容:
var thisfile = [userinput];
descrip2.innerHTML = "<?php include(thisfile); ?>";对如何实现这一点有什么想法吗?我知道我正在尝试将客户端脚本与服务器端连接起来,但这就不能用我尝试的方式来完成吗?也许可以做一些小调整?我不想为那些本该如此直观和简单的东西写一百个php脚本。:(如果我能避免的话就不会...
发布于 2012-03-23 17:37:20
如果我理解你的问题,你不能那样做。
你可以使用ajax请求。如果你使用jquery,你可以这样做:
var thisfile = [userinput];
$(descrip2).load(thisfile);或者自己执行ajax请求。
发布于 2012-03-23 17:36:51
如果您文件是简单的html文本,您可以使用返回文件内容的file_get_contents()函数来执行此操作:
descrip2.innerHTML = "<?php echo file_get_contents('textfile.txt'); ?>";发布于 2012-03-23 17:41:43
更新:
从你的问题和你在评论中说的。我假设您有这样的场景:
你有一个包含一些information.
因此,在继续之前,创建一个格式良好的文件来存储所有信息。示例
<?xml version="1.0" encoding="UTF-8"?>
<data>
<div>
<h2>lorem ipsum</h2>
<p>brown fox jump hover the lazy dog</p>
</div>
<div>
<h2>lorem ipsum 1</h2>
<p>brown fox jump hover the lazy dog 1</p>
</div>
</data>然后使用AJAX加载内容并将其附加到所需的元素,如下所示
<html>
<head>
<title></title>
<script>
var descriptor;
function init() {
descriptor = document.getElementById("descriptor");
loadFromFile('data.xml');
}
function loadFromFile(thisfile) {
var xmlhttp;
if(window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var data = xmlhttp.responseXML.documentElement.getElementsByTagName('div');
var divs = '';
for(var i = 0; i < data.length; i++) {
var div = data[i];
divs += '<div>';
divs += '<h2>' + div.getElementsByTagName('h2')[0].firstChild.nodeValue + '</h2>';
divs += '<p>' + div.getElementsByTagName('p')[0].firstChild.nodeValue + '</p>';
divs += '</div>';
}
descriptor.innerHTML = divs;
}
}
xmlhttp.open("GET", thisfile, true);
xmlhttp.send();
}
</script>
</head>
<body onload="init()">
<div id="descriptor"></div>
</body>
</html>https://stackoverflow.com/questions/9836748
复制相似问题