【问题标题】:AJAX, PHP, and Javascript to populate a form input device issuesAJAX、PHP 和 Javascript 填充表单输入设备问题
【发布时间】:2013-05-18 08:25:13
【问题描述】:

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

背景:

我有一个表单,它需要基于邮政编码(文本框)的动态下拉列表,这是由 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>

【问题讨论】:

  • 您需要显示更多代码。例如 Ajax 部分
  • 肯定会编辑我的评论!
  • 我会试试这个,我有 HTML 标签和所有其他的东西,因为我认为它会更容易阅读,我会尝试你所说的并回复你
  • 删除标签不走运...

标签: php javascript ajax forms dynamic


【解决方案1】:

你做错了 =) 你为什么不使用 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);
    });
});

【讨论】:

  • @llyaDoroshin 这完全超出了评估任务的范围,实施 AJAX 也是如此,但我会看看我是否可以阅读和理解 JSON 并实施它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
相关资源
最近更新 更多