2013-11-24 180 views
0
<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)等....任何人都可以提供帮助吗?必须欣赏。如何将PHP数组值赋给Javascript?

+0

从标题,这让我觉得(http://stackoverflow.com/questions/4885737/pass-a-php-array-其A [问题我回答的重复]到-A-JavaScript的功能)。但它似乎不是,可以更具体一点你想要什么,以及它失败的地方? – SuperSaiyan

+0

嗨,你好,我阅读了你的文章。 但我认为我是不同的,我试图从0,1,2作为值的形式得到3输入...然后一旦提交按钮是点击...窗口警报也应打印出价值,我有商店的形式如0,1,2 – Marcus

+0

是的,我在发布该评论后明白了您的问题。我在下面回答。 HTH – SuperSaiyan

回答

0

在服务器端执行php之前,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> 
+0

我认为他的问题是完全不同的。他想知道为什么他在javascript中的for循环不起作用。 – SuperSaiyan

+0

@JonathanLonowski - 哎呀 - 纠正了这一点。 – Krease

1

如果我正确地得到您的问题,您需要通过ID访问元素。正确的方法是使用document.getElementById(...)。你的情况:

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

谢谢,它现在工作! – Marcus

+0

对不起,不方便。 – Marcus

+0

没问题,很高兴我能够帮助:-) – SuperSaiyan

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