2013-04-10 57 views
0

经过一些帮助和学习之后,我设法通过JScript来改变目标,但是我似乎无法弄清楚如何创建一个变量或使其进行计算。Onchange提供的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"变量,以便它能够制定出值计算则只要用户更改TYPE框中的选项,就可以在VALUE框中输入回显(或需要什么命令)。希望这是有道理的。

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

我看着这个不正确,应该做另一种方式吗? PS:我知道它是MYSQL;我正在努力学习PDO,因为我们正在说改变它。 :-)但目前,我只想用我有基本知识的语言来解决这个问题。

回答

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,200and等和TYPE_NAME就像是好,更好或最好的名字。

+0

感谢JJPA,这确实有点道理的。但是这只会改变我的输入框中的值不会呢?它不会真的做我需要做的计算如上所示? – Rocsha 2013-04-10 05:25:05

+0

我编辑了我的答案,因为我的理解是你想获得联系buid的值并键入,然后将该值存储到另一个字段。如果没有让我知道 – Vinay 2013-04-13 06:12:14

+0

这是Spot on !!!谢谢堆JJPA!非常感谢!!! – Rocsha 2013-04-17 06:07:15

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> 
相关问题