innerHTML и PHP - PullRequest
       34

innerHTML и PHP

1 голос
/ 14 сентября 2009

Я хочу сделать некоторые замены 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;
}

У меня есть Div 'txtData' как:

изначально, и я хочу заменить на код из .inc, который я упоминаю. Я использую .inc, чтобы отделить части сайта и сделать дизайнера проще, чтобы они не ломали вещи!

В .inc у меня сейчас просто ПРИВЕТ.

Это не работает. В чем прикол?

Ответы [ 4 ]

3 голосов
/ 14 сентября 2009

PHP обрабатывается на стороне сервера; Javascript обрабатывается на стороне клиента. Вы не можете вставить код PHP через Javascript, потому что вы уже покинули сервер. Обычно вы используете AJAX для запуска кода PHP на сервере, а затем динамически вставляете результаты на страницу.

1 голос
/ 29 ноября 2010
<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>
1 голос
/ 14 сентября 2009

Используя 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

0 голосов
/ 14 сентября 2009

Это будет работать до тех пор, пока ваш файл JavaScript анализируется PHP, т.е. с .htaccess, который говорит SetHandler application/x-httpd-php .js. Вы захотите экранировать текст внутри include, поэтому лучше использовать PHP file_get_contents () и addlashes (). Вот пример того, как суперобезопасить строку в PHP, предназначенную для JavaScript: http://sixohthree.com/241/escaping

Альтернативным решением будет загрузка содержимого страницы через XMLHttpRequest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...