2011-01-31 71 views
0

我做了一個簡單的應用程序,它有一個裝有數據庫值和文本框的組合框,它應該顯示與組合框選擇有關的文本。 名稱編號 NUMBER1 1234 NUMBER2 2345 NUMBER2 5678 number3的2212php,html combobox和textfield

所以組合框將具有值數字1,數字,number3的。當用戶選擇number1時,我必須用1234加載文本字段值,如果number2被選中2345,5678。

下面是我的代碼從數據庫中檢索......但問題是當我按下Enter鍵,而不是點擊提交按鈕鍵的值僅加載中...

<head> 
    <title>Sample Numbers</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
<body > 
    <?php 
    $dbname = 'sample_db'; 
    $db_user = 'xxx'; 
    $db_pass = 'xxx'; 
    $host = 'localhost'; 
    $conn = mysql_connect($host, $db_user, $db_pass); 
    mysql_select_db($dbname); 
    $query = "select distinct Name from numbers"; 
    $result = mysql_query($query, $conn) or die(mysql_error()); 
    ?> 
    <center> 
     <form name=callsubm> 
      <table> 
       <?php 
       if ($result) { 
       ?> 
        <tr> 
         <td>Group Name:</td> 
         <td><select name="Name" id="Name" onchange="onComboChange();"> 
         <?php 
          while ($row = mysql_fetch_assoc($result)) { 
           echo '<option value="' . $row['Name'] . '">' . $row['Name'] . '</option>'; 
          } 
         } 
          ?> 
         </select> 
         <?php 
         if (isset($_GET['Name'])) { 
          $array = array(); 
          $query = "select Number from numbers where Name='" . $_GET['Name'] . "'"; 
          $result = mysql_query($query, $conn) or die(mysql_error()); 
          $i = 0; 
          if ($result) { 
           while ($row = mysql_fetch_assoc($result)) { 
            $array[] = $row['Number']; 
            $i++; 
           } 
          } 
          $total_numbers = implode(',', $array); 
         } 
         ?> 
         <script type="text/javascript"> 
          function showValues() { 
           var a=new Array(); 
      <?php 
            for ($i = 0; $i < count($array); $i++) { 
             echo "a[$i]='" . $array[$i] . "';\n"; 
            } 
    ?> 
            alert(a.join()); 
            document.getElementById("inTxt").value=a.join(); 
          } 
         </script> 
        </td> 
       </tr> 
       <tr> 
        <td>Numbers :</td> 
        <td ><input name=inTxt id=inTxt type="text" size="15"></td> 
        <td><input type="button" id="callBtn" name="callBtn" value="submit" onclick="showValues()" ></td> 
       </tr> 
      </table> 
     </form> 
    </center> 
    <script type="text/javascript"> 
     function onComboChange() { 
     groupName=document.getElementById("Name").value; 
     alert("Selected Group:" + groupName); 
    } 
    </script> 
</body> 

如何解決這個問題?

在此先感謝

+0

是的,如果答案適合你,請點擊小複選框。 – xil3 2011-01-31 13:48:48

+0

你能不能也發佈生成的html源代碼? – 2011-02-01 12:27:31

回答

0

更改提交你的提交按鈕,而不是使用按鈕類型類型:

<input type="submit" id="callBtn" name="callBtn" value="submit" onclick="showValues()" > 
1

如果你需要一個提交按鈕,但它並不一定是button,請使用<input type="submit">

因此,改變你的HTML:

<input type="submit" id="callBtn" name="callBtn" value="submit" onclick="showValues()" > 

(可以省略value="submit",如果你不查詢在PHP該值...)

當使用一個按鈕:
如果您希望提交按鈕上顯示的文本與提交值不同,請使用以下按鈕:

<button type="submit" id="callBtn" name="callBtn" onclick="showValues()" 
    value="valueToBeSubmitted">textToBeDisplayed</button>