如何在getElementById中使用数组值?

时间:2013-05-18 08:33:45

标签: php javascript

我有这样的php数组:

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

如何在此javascript代码中使用该id值:

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

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

您的PHP代码中有一些无效的语法:

  1. 您的变量不包含$
  2. 您没有echo输出变量。
  3. 您的循环必须靠近endforeach

  4. 考虑您有以下数组:

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

答案 2 :(得分: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>