2013-04-10 73 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>