如何从javascript中的数组输入中获取值

时间:2010-11-16 02:38:53

标签: javascript arrays

如何在javascript中正确地从数组中获取值:

<html>
<head>
    <script type="text/javascript">
        function proc()
        {
            var cost = document.yoh.coz.value;
            var qtybuy = document.yoh.qbuys.value;
            var st = cost * qtybuy;

            var tbox = document.yoh.subtotal;
            if (tbox)
            {
                tbox.value = st;
            }
        }
    </script>
</head>
<body>

<?php
    include('conn.php');

    $prodname = $_GET['prodname'];
    $result = query_database("SELECT * FROM prod_table WHERE PRODUCT='$prodname'", "onstor", $link);
?>
<?php while ( $row = mysql_fetch_array($result) ) { ?>

<form name="yoh" method="get">
    Product id: <input type="text" name="prodid" value=""><br/>
    Cost: <input type="text" name="coz" value="<?php echo $row['S_PRICE']; ?>"><br/>
    Quantity to buy:<input type="text" name="qbuys" value="" onkeyup="proc();"></br>

    Subtotal:<input type="text" name="subtotal" value=""></br>
</form>

</body>
<?php } ?>
</html>

正如您所看到的,这个程序只会乘以2个值。其中一个值将从数据库中获取,另一个值来自用户。 如果我这样做,我没有得到任何结果:

<html>
<head>
    <script type="text/javascript">
        function proc()
        {
            var cost = document.yoh.coz[].value;
            var qtybuy = document.yoh.qbuys[].value;
            var st = cost * qtybuy;

            var tbox = document.yoh.subtotal[];
            if (tbox)
            {
                tbox.value = st;
            }

        }
    </script>
</head>
<body>
<?php
    include('conn.php');

    $prodname = $_GET['prodname'];
    $result = query_database("SELECT * FROM prod_table WHERE PRODUCT='$prodname'", "onstor", $link);
?>
<?php while ( $row = mysql_fetch_array($result) ) { ?>

<form name="yoh" method="get">
    Product id: <input type="text" name="prodid[]" value=""><br/>
    Cost: <input type="text" name="coz[]" value="<?php echo $row['S_PRICE']; ?>"><br/>
    Quantity to buy:<input type="text" name="qbuys[]" value="" onkeyup="proc();"></br>

    Subtotal:<input type="text" name="subtotal[]" value=""></br>
</form>

</body>
<?php } ?>
</html>

我是否需要手动包含索引?使用数组时,我需要做些什么才能获得相同的结果。

2 个答案:

答案 0 :(得分:1)

您可以使用名称值:

cost=document.yoh.elements['coz[]'].value;

答案 1 :(得分:0)

您需要遍历数组。在JavaScript中迭代数组(或对象):

for (key in arr){
    // The key will be set to each key in the array (arr)
    // The value at that key will be arr[key] (like always)
}

我不完全确定你的目标是什么,但一般来说,知道“[]”语法只是PHP,JavaScript将其视为任何其他名称(可能是语法错误)。