带Onchange的JScript变量

时间:2013-04-10 04:47:42

标签: php javascript forms math

经过一些帮助和学习之后,我设法通过JScript改变目标,但我似乎无法弄清楚如何制作变量或让它进行计算。

到目前为止我的代码是(这是三个表格框+一个提交按钮):

NUMBER
<input name="contact_build" 
       type="text" 
       id="contact_build" 
       value="<?php echo $row_contact['contact_build']; ?>" />



TYPE
<select id="contact_type" 
        name="contact_type" 
        onchange="targ.value=this.value" />
        <?php
        $specresult = mysql_query("SELECT * FROM `types` ORDER BY type_value");
        while ($specrow = mysql_fetch_array($specresult)) {
            echo '<option value="' . $specrow['type_name'] . '">' . $specrow['type_name'] . '</option>';
        }
        ?>
</select>



VALUE
<input name="contact_value" id="targ" value="<?php
        $var1 = $row_contact['contact_build'];
        $var2 = $row_value['type_value'];
        $total = round($var2 * $var1);
        echo "" . $total . "";
        ?>" />


<input type="submit" name="Submit2" value="Update" />

我想要做的是将"TARG"变为"$VAR2"变量,以便它可以计算出VALUE计算,然后在VALUE框中回显(或者需要什么命令)答案,如用户更改TYPE框中的选项后。希望这是有道理的。

目前我设法让它在"TYPE"框中显示"VALUE"值。它忽略了上面的任何“echo”命令。

我是否正确地看待这种情况,应该采取另一种方式?

PS:我知道这是MYSQL;我正在努力学习PDO,因为我们正在改变它。 :-)但是目前,我只是想用我基本了解的语言来解决这个问题。

2 个答案:

答案 0 :(得分:1)

浏览下面的代码。

<body>

    <input name="contact_build" 
      type="text" 
      id="contact_build" 
      value="<?php echo $row_contact['contact_build']; ?>" />

    <select onchange="change(this.value)" >
        <option value="1"> 1</option>
        <option value="2"> 2</option>
        <option value="3"> 3</option>
    </select>

    <input type="text" id="targ" value="2"/>

    <script>
        function change(val) {
            var cnt_bld = document.getElementById("contact_build").value;
            var total_val = Math.round(parseInt(val) * parseInt(cnt_bld));
            document.getElementById("targ").value = total_val;
        }
    </script>

</body>

在上面的代码中,我调用了一个函数change(this.value),它将接受选择框值。然后在函数中我使用该值来改变输入字段的值。看document.getElementById。使用您的代码,您可以直接使用id代替。希望这会有所帮助。

修改 这一行

echo '<option value="' . $specrow['type_name'] . '">' . $specrow['type_name'] . '</option>';
如果你有这些名字和价值,

就可以这样做。

echo '<option value="' . $specrow['type_value'] . '">' . $specrow['type_name'] . '</option>';

假设您的另一个列名称为type_value,其中值存储为100,200等等,而type_name是好的,更好或更好的名称。

答案 1 :(得分:0)

希望这是你想要的

<html>
<body>
    <input name="contact_build"
       type="text"
       id="contact_build"
       value="10" />
    <select onchange="change(this.value)" >
        <option value="0">Select</option>
        <option value="1"> 1</option>
        <option value="2"> 2</option>
        <option value="3"> 3</option>
    </select>

    <input type="text" id="targ" value="0"/>

    <script>
        function change(val) {
            document.getElementById("targ").value = document.getElementById("contact_build").value*val;

        }
    </script>

</body>
</html>