innerHTML和PHP

时间:2009-09-14 00:45:24

标签: php ajax

我想做一些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。

它不起作用。有什么诀窍?

4 个答案:

答案 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的回答。

请参阅http://docs.jquery.com/Ajax

答案 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加载页面内容。