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