используя переменную JS в PHP - PullRequest
0 голосов
/ 22 ноября 2011

как можно использовать переменную JS в PHP, как это?

<script>
x = document.getElementById(1).value;
var listOf = <?php echo $listOf[x]; ?>;
</script>

это не работает: (

Ответы [ 7 ]

1 голос
/ 22 ноября 2011

это невозможно, потому что оба языка разные, поэтому вы не можете использовать переменную javascript в php внутри javascript

1 голос
/ 22 ноября 2011

И это правильно. PHP выполняется на сервере , тогда как JavaScript выполняется в клиентском браузере . Это два разных контекста, а переменные из одного не видны во втором.

Вам нужно, чтобы ваш PHP-скрипт выводил версию массива на JavaScript, а затем использовал эту версию в вашем скрипте. Примерно так:

<?php
echo "listArray = new Array();\n";
foreach ($listArray as $key => $value) {
   echo 'listArray[', $key, '] = ', $value, ";\n";
}
0 голосов
/ 15 марта 2013

Это преобразует переменную javascript в переменную php.

<script>
function sud(){

javavar=document.getElementById("text").value;  

document.getElementById("rslt").innerHTML="<?php 
$phpvar='"+javavar+"'; 
echo $phpvar.$phpvar;?>";
}

function sud2(){
document.getElementById("rslt2").innerHTML="<?php 
echo $phpvar;?>";
}

</script> 
<body>
<div id="rslt">
</div>

<div id="rslt2">
</div>
<input type="text" id="text" />
<button onClick="sud()" >Convert</button>
<button onClick="sud2()">Once Again</button>

</body>

Демо: http://ibence.com/new.php

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

как это если вы поместите php в одинарные или двойные кавычки, чем это работает

<script type='text/javascript'>
x = document.getElementById(1).value;
var listOf = "<?php echo $listOf[x]; ?>";
</script>
0 голосов
/ 22 ноября 2011

Вы не можете.JavaScript запускается в вашем браузере, а PHP запускается на сервере.Единственный способ взаимодействия JavaScript с PHP - использование AJAX (XMLHttpRequest), отделяющего JavaScript от PHP.

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

Это невозможно.PHP выполняется на стороне сервера, даже до того, как его вывод достигнет вашего браузера.JS выполняется на стороне клиента, в браузере.Вы не можете сделать это, если не вызовете какой-либо другой скрипт PHP с этой переменной x.

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

Вы не можете использовать это напрямую, как это.

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

Используя jQuery, это может стать очень простым, хотя:

x = document.getElementById(1).value;
$.get("mypage.php?x=" + x, function(result) {
    alert("response from PHP: " + result);
});

А в PHP прочитайте x из строки запроса и отправьте правильный вывод.

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