Я пробовал этот код:
<script type="text/javascript">
var s = 0;
document.getElementById('text').value = "<?php echo phpVal[s];?>";
</script>
проблема в том, как я могу поместить значение (s) в (PHP) код.
Здесь больше контекста:
<head>
<?php $s = ["a","b","c"]; ?>
<script type="text/javascript">
function doFun(ss){
var data = "<?php echo json_encode($s); ?>";
document.getElementById('t').value = s[ss];
}
</script>
</head>
<body>
<input type="text" id="t" name="t" />
<button type="button" id="b" name="b" onclick="doFun(0)">doFun</button>
</body>
Вы не можете, к тому времени, когда s
имеет значение (на клиенте), код PHP (на сервере) уже давно завершен.
Что вы делаете, а не многое зависит от того, что ваша конечная цель. У вас много вариантов. Вот два из них:
Выведите весь массив/объект phpVal
для клиента, а затем проиндексируйте его с помощью s
.
var s = 0;
var data = <?php echo json_encode(phpVal)%>;
document.getElementById('text').value = data[s];
Отправьте s
на сервер с помощью ajax, попросите PHP-код, который работает в ответ на этот запрос, phpVal
правильное значение из phpVal
и верните его в результате ajax, положив его на input
value
стороне клиента. Например:
JavaScript:
var s = 0;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById('text').value = xhr.responseText;
}
};
xhr.open("get-value.php?s=" + encodeURIComponent(s));
// You don't really need this ^
// for '0', but many times when sending variables to the
// server, you do
xhr.send();
PHP для get-value.php
(примерно):
<?php
header('Content-Type: text/plain');
$phpVal = /*...get the value however it is you do that...*/
echo $phpVal[$_GET['s']];
?>
Но опять же это зависит от того, что вы на самом деле пытаетесь сделать.