php,html combobox和textfield

时间:2011-01-31 13:20:37

标签: php html combobox textfield

我做了一个简单的应用程序,它有一个加载了数据库值的组合框和一个应该显示与组合框选择相关的文本的文本字段。 姓名编号 number1 1234 编号2 2345 编号2 5678 number3 2212

因此,组合框的值为number1,number2,number3。当用户选择number1时,我必须加载1234的文本字段值,如果选择number2则为2345,5678。

下面是我从数据库中检索的代码...但问题是只有当我按下回车键而不是点击提交按钮时才加载值...

<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>

如何解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:1)

如果您需要提交按钮,但不一定是button,请使用<input type="submit">

因此,将您的html更改为:

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

(如果你不在php中查询该值,你可以省略value="submit"。)

何时使用按钮:
如果您希望提交按钮上显示的文本与提交的值不同,请使用按钮:

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

答案 1 :(得分:0)

在提交按钮上更改要提交的类型,而不是使用按钮作为类型:

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