我想做一些innerHTML替换,但是使用PHP包含,我不知道怎么做。我以前做过innerHTML替换,而不是PHP。
我有:
var xmlHttp
function DisplayAerialProductListing()
{
var strStartCode="<p></p>";
document.getElementById("txtData").innerHTML= strStartCode;
var code="";
code = code + "<?php include 'newpage.inc'; ?>";
document.getElementById("txtData").innerHTML= code;
}
我将'txtData'Div视为:
最初,我想用我提到的.inc中的代码替换。我使用.inc来分离网站的各个部分,让设计师更容易,所以他们不会破坏东西!
在.inc中,我现在只有HELLO。
它不起作用。有什么诀窍?
答案 0 :(得分:3)
PHP在服务器端处理; Javascript在客户端处理。您无法通过Javascript插入PHP代码,因为您已经离开了服务器。通常,您要做的是使用AJAX在服务器上运行PHP代码,然后将结果动态插入到页面中。
答案 1 :(得分:1)
使用jQuery,你可以毫不费力地指出:
<p id="myParagraph"></p>
<script>
//when the DOM is ready
$(document).ready(function() {
//replace contents of p id="myParagraph" with output of specified script
$('#myParagraph').load('myPage.php');
});
</script>
仍然,请确保您了解客户端和服务器之间的区别,根据@Dav的回答。
答案 2 :(得分:1)
<script style="text/javascript" language="javascript">
<!--
function check_country()
{
var sel_country = document.getElementById("country");
if(sel_country.value == "US")
{
<?php
$query = "SELECT stateName, stateAbbrev
FROM states
WHERE stateEnabled = '1'
ORDER BY stateName ASC";
$result = mysql_query($query);
$prov = "<select name=\"state\" id=\"state\" class=\"widthed\">";
while($row = mysql_fetch_row($result))
{
$prov .= "<option value=\"$row[1]\">$row[0]</option>";
}
$prov .= "</select>";
?>
document.getElementById("tab1").rows[2].cells[3].innerHTML = "*State:";
document.getElementById("tab1").rows[3].cells[0].innerHTML = "*Zip Code:";
document.getElementById("tab1").rows[2].cells[4].innerHTML = <?php echo $prov; ?>;
}
}
-->
</script>
答案 3 :(得分:0)
只要你的JavaScript文件被PHP解析,那就行了。用.htaccess说SetHandler application/x-httpd-php .js
。你想要转义include中的文本,所以最好使用PHP的file_get_contents()和addslashes()。这是一个如何超级清理PHP中用于JavaScript的字符串的示例:http://sixohthree.com/241/escaping
另一种解决方案是通过XMLHttpRequest加载页面内容。