2013-05-18 30 views
-1

我有PHP數組這樣的:如何在getElementById中使用數組值?

<form name="qwerty"> 
    <? foreach ($products as $product)?> 
    <input type="text" name="price1[]" id="<? $product['id']?>" value="<? $product['price1']?>" onkeyup="copy()"/> 

    <input type="text" name="price2[]" id="<? $product['id']?>" value="<? $product['price2']?>" /> 
    <? end foreach?> 
</form> 

如何使用值id在JavaScript代碼:

<script type="text/javascript"> 
function copy() 
{ 
    var cc1 = document.getElementById('???????'); 
    var cc2 = document.getElementById('???????'); 
    cc2.value = cc1.value; 
} 
</script> 
+2

ID必須是**唯一的** – Andreas

+0

爲什麼你不使用getElementsByName,因爲你必須id複雜。 –

+0

爲什麼你的PHP變量沒有'$'? – 2013-05-18 08:42:01

回答

0

把產品ID作爲參數向copy()功能。然後它可以通過字符串連接獲得適當的ID。

<form name="qwerty"> 
    <? foreach (products as product)?> 
    <input type="text" name="price1[]" id="price1_<? $product['id']?>" value="<? product['price1']?>" onkeyup="copy('<? $product['id']?>')"/> 

    <input type="text" name="price2[]" id="price2_<? $product['id']?>" value="<? product['price2']?>" /> 
    <? end foreach?> 
</form> 

function copy(pid) { 
    var cc1 = document.getElementById('price1_'+pid); 
    var cc2 = document.getElementById('price2_'+pid); 
    cc2.value = cc1.value; 
} 
0

你在你的PHP代碼一些無效的語法:

  1. 您的變量不包含$
  2. 您沒有echo輸出您的變量。
  3. 您的環路必須接近endforeach

考慮您有以下陣列:

<?php 
    $products = array(
     array('id' => 1, 'price1' => 1, 'price2' => 2), 
     array('id' => 2, 'price1' => 1, 'price2' => 2), 
     array('id' => 3, 'price1' => 1, 'price2' => 2) 
    ); 
?> 

而在你的HTML:

<?php foreach ($products as $product): ?> 
    <input type="text" name="price1[]" id="<?php echo $product['id']; ?>_F" value="<?php echo $product['price1']; ?>" 
     onkeyup="copy('<?php echo $product['id']; ?>')" /> 
    <input type="text" name="price2[]" id="<?php echo $product['id']; ?>_T" value="<?php echo $product['price2']; ?>" /> 
    <hr> 
<?php endforeach; ?> 

而且你的功能將是:

<script> 
    function copy(id) { 
     document.getElementById(id + '_T').value = document.getElementById(id + '_F').value 
    } 
</script> 
0

試試這個

<form name="qwerty"> 
<?php foreach ($products as $product){?> 
    <input type="text" name="price1[]" id="<? echo $product['id']?>" value="<? echo $product['price1']?>" onkeyup="copy(this)"/> 

    <input type="text" name="price2[]" id="mirror<? echo $product['id']?>" value="<? echo $product['price2']?>" /> 
<?php }?> 
</form> 

<script type="text/javascript"> 
function copy(e) 
{ 
    document.getElementById("mirror"+e.id).value=e.value; 
} 
</script> 
相關問題