0

我对此一无所知,所以我想我需要一些帮助...

背景:

我有一个需要动态下拉列表的表单,基于邮政编码(文本框),这是由 AJAX 函数完成的,该函数调用 PHP 文件,如下所示

....

<select name="choice1" id="choice1">
    <?php
         //Block of code to populate drop down menu from a SQL command
    ?>
</select>

....

该功能有效,因为它在邮政编码更改时显示,并被填充。我的问题是我注意到它不是表单的一部分,或者我不能在这个设备上使用 JS.. 因为现在我需要从下拉菜单中取一个值到另一个文本框中。

是否可以将其添加到表单中?甚至至少使用 JS,这样我才能获得价值?

谢谢..

编辑

这是我调用 PHP 文件的函数:

function choiceDropdowns(code){
        var postcode = code.value;
        var xmlhttp;

        if (window.XMLHttpRequest){
            xmlhttp=new XMLHttpRequest();
        }
        else{
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200){
                document.getElementById("div4").innerHTML=xmlhttp.responseText;
            }
        }

        xmlhttp.open("GET","createChoice123DropDown.php?postcode="+postcode,true);
        xmlhttp.send();
    }

PHP 文件:

<body>
    <select name="choice1" id="choice1">
    <?php
        $postcode = $_GET["postcode"];

        $conn = mysql_connect("localhost", "XXXX", "XXXX");
        mysql_select_db(XXXX, $conn)
        or die('Database not found ' . mysql_error());

        $sql = "SELECT school_info.Name, school_info.schoolID FROM school_info INNER JOIN local_schools ON school_info.schoolID = local_schools.schoolID INNER JOIN valid_postcodes ON local_schools.postcodeID=valid_postcodes.id WHERE valid_postcodes.postcode != '$postcode' AND school_info.school_type ='S'";
        $rs = mysql_query($sql, $conn)
        or die ('Problem with query' . mysql_error());

        while($row = mysql_fetch_array($rs)){
            echo '<option value="'.$row["schoolID"].'">'.$row["Name"].'</option>';
        }
    ?>
    </select>
</body>

这是我的表格(显然缩小了尺寸):

<form method="get" id="eoi_form" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
    <td>Choice 1:<div id="div4"></div></td>
</form>
4

1 回答 1

0

你做错了 =) 你为什么不使用 json 返回所有选项,然后将其附加到你的选择框:

var select = $('#my_select')
$.post('update_options', function(response) {
    $.each(response.options, function(i, item) {
        var option = $('<option>');
        if (item.value) option.attr('value', item.value);
        option.text(item.text);
        select.append(option);
    });
});
于 2013-05-23T05:38:38.767 回答