如何将PHP数组值引入Javascript

How to bring PHP array value to Javascript?

本文关键字:Javascript 数组 PHP      更新时间:2023-10-10
<html>
<head>
<script language="javascript">
    function validatefrm(){
        for (var i= 0 ; i< 3 ; i++){
        window.alert(i+window.document.contact[i].value); 
        }
        return false; //to prevent form from submitting for debugging
    }
</script>
</head>
<body>
<form name="editform" onsubmit="return validatefrm();" method="POST">
<?php
for($i=0; $i<3; $i++){
    print "<input type='textbox' id='contact".$i."' value='".$i."'>";
}
?>
<input type="submit" value="Submit Values">
</form>
</body>
</html>

嗨,我是 php 和 javascript 的新手。我正在尝试使用 javascript 调用值为 0,1,2 的表单,但它不起作用。除非我删除 javascript 函数中的 for 循环并将其硬编码为 Window.alert (window.document.contact0.value( 等等......有人可以帮忙吗?必须欣赏。

如果我正确回答了您的问题,则需要按 ID 访问元素。正确的方法是使用document.getElementById(...).在您的情况下:

for (var i= 0 ; i< 3 ; i++){
    window.alert(document.getElementById('contact' +i).value); 
}

你正在使用 php contact0, contact1 等为每个元素设置一个 ID。

所以在javascript中寻找那个ID

function validatefrm(){
    for (var i= 0 ; i< 3 ; i++){
        window.alert(i+ ' '+ document.getElementById('contact'+i).value); 
    }
    return false; //to prevent form from submitting for debugging
}

您最好的选择很可能是使用 json_encode 。此方法将数组输出为 JSON 数组,可以将其分配给 <script> 标记中的 JavaScript 变量。PHP 端的关联数组将被转换为 JSON 对象。

PHP 文档中的json_encode

<?php
$myArr = array(0, 1, 2);
?>
<!-- somewhere in the HTML document -->
<script>
   var myArr = <?php echo json_encode($myArr); ?>;
   // do something with myArr
   console.log(myArr);
</script>

php 在进入浏览器之前在服务器端执行。 javascript 在客户端的浏览器中执行。你不能像这样将 php 值传递给 javascript。

你可以制作php输出javascript(在脚本标签中(,并在javascript代码中使用它。

<script>
  var foo = [];
  <?php
    for($i=0; $i<3; $i++){
      print "foo[".$i."] = ".$i;
    }
  ?>
console.log(foo[0] + ", " + foo[1] + ", " + foo[2]);
<script>