2013-11-24 216 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>