php, html combobox и текстовое поле - PullRequest
0 голосов
/ 31 января 2011

Я сделал простое приложение, в котором есть поле со списком, который загружается со значением базы данных, и текстовое поле, которое должно отображать текст, связанный с выбором поля со списком. Имя Номер № 1 1234 №2 2345 номер2 5678 номер3 2212

Таким образом, поле со списком будет иметь значения № 1, № 2, № 3. когда пользователь выбирает число 1, я должен загрузить значение текстового поля с 1234, и если число 2 выбрано 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 ]

1 голос
/ 31 января 2011

Если вам нужна кнопка отправки, но она не должна быть 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>
0 голосов
/ 31 января 2011

Измените тип для отправки на кнопку отправки вместо использования кнопки в качестве типа:

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