如何将PHP数组值带到Javascript?

时间:2013-11-24 18:42:08

标签: javascript php html

<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)等等....任何人都可以提供帮助吗?必须欣赏。

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您正在使用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
}

答案 2 :(得分:0)

在进入浏览器之前,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>

答案 3 :(得分:0)

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

json_encode in the PHP documentation

<?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>