Как использовать переменную JavaScript в PHP? - PullRequest
3 голосов
/ 22 октября 2011

Я пытаюсь этот код:

<script type="text/javascript">
for (i = 0; i < 5; i++) {
    for (x = 0; x < 1; x++) {
        $("#one" + i).html("<?php echo $arr["+i+"]["+x+"] ?>");
        $("#two" + i).html("<?php echo $arr["+i+"]["+x+1+"] ?>");
    };
};

</script>

Не отображается ошибка, но содержимое также не отображается.

Как использовать переменную инкремента JavaScript в коде PHP?

Спасибо

Ответы [ 4 ]

6 голосов
/ 22 октября 2011

Вы можете сделать свой PHP-массив доступным для JS (сохранить его как переменную js):

<script type="text/javascript">
var arr=<?php echo json_encode($arr); ?>;
for (i = 0; i < arr.length; i++) {
    for (x = 0; x < 1; x++) {
        $("#one" + i).html(arr[i][x]);
        $("#two" + i).html(arr[i][x+1]);
    };
};
</script>
6 голосов
/ 22 октября 2011

Вы не можете сделать это.

Javascript запускается на клиенте, что составляет после всего PHP-кода.

Почему нет?Вы пишете цикл в PHP вместо этого?Например,

<script type="text/javascript">
<?php
for ($i = 0; $i < 5; $i++) {
    for ($x = 0; $x < 1; $x++) {
        printf('$("#one%s").html("%s");', $i, $arr[$i][$x]);
        printf('$("#two%s").html("%s");', $i, $arr[$i][$x + 1]);
    };
};
?>
</script>
1 голос
/ 22 октября 2011

Хорошо, я пытаюсь задать вам короткий вопрос .. хотя это может быть очень долго.PHP это серверный язык сценариев, в то время как javascript это клиентский один.

Это означает, что код php интерпретируется и выполняется на сервере (например, Apache), и код javascript выполняется внутри самого браузера.

Таким образом, вы не можете выполнить код php внутри своего браузера.для написанного вами кода вы можете просто преобразовать две for javascript-итерации в php.Если вам действительно нужно что-то напечатать в php с использованием переменной javascript, вы должны выполнить AJAX-запрос к странице php, которая возвращает ваше значение javascript и возвращает необходимые вам php-вычисленные значения.

Пожалуйста, посмотрите наэти ссылки в качестве начала:

0 голосов
/ 22 октября 2011

<?php интерпретируется интерпретатором php. Если у вас нет этого блока в реальном файле php, то это означает, что вы выполняете в контексте браузера. Браузер не знает о php, только ваш веб-сервер. Таким образом, браузер будет интерпретировать <?php как элемент HTML, который не существует.

Вам нужно переместить весь блок в файл php, например:

myFile.php
==========
    <?php
        $arr = array(...);
        $arrLen = count($arr);
        $output = '<script type="text/javascript">';
        for ($i=0; $i<$arrLen; $i++) {  // notice this is in php, not js
            $output .= '$("#one"'.$i.').html("'.$arr[$i][0].'");';
            $output .= '$("#two"'.$i.').html("'.$arr[$i][1].'");';
        }
        $output .= '</script>';
        echo $output;
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...