【问题标题】:Grab information from database and insert into drop down list dynamically从数据库中获取信息并动态插入下拉列表
【发布时间】:2014-07-08 20:23:14
【问题描述】:

我有一个小网站,我试图从数据库中获取某个列(SQL Server Management Studio)并将这些值插入到下拉列表中。

我的 HTML 代码加载一个带有下拉列表的简单页面。

<html>
<body onload = "Location();">
    <h4>Home Page</h4>
        CompanyName
        <select id="company" name="C1" >
            <option>Pick A Location</option>
        </select>
</body>
<html>

在我的 JavaScript 函数执行任何“工作”之前,它会导航到一个 c# 页面。我调试了 c# 代码,它确实输出正确。它显示:

"<root>\n<CompanyName>\n\t<option>AAA</option>\n\t<option>BBB</option>\n\t<option>CCC</option>\n\t<option>DDD</option>\n\t<option>EEE</option>\n\t<option>FFF</option>\n\t<option>GGG</option>\n\t<option>HHH</option>\n</CompanyName>\n</root>"

这只是我需要输入下拉列表的数据库中的列。 javascript 函数应该抓取这段代码并深入到选项部分,并将每个选项一个一个地放入下拉列表中。由于从 c# 页面导航到 javaScript 页面之间的某种原因,我丢失了 xml 信息。有什么我遗漏的东西还是有什么不正确的?谢谢。

function Location() {

    $.ajax({
        url: "Test.aspx",
        beforeSend: function (xhr) {
            xhr.overrideMimeType("text/plain; charset=x-user-defined");
        }
    }).done(function (data) {
        if (console && console.log) {
            xml = data;
            xmlDoc = $.parseXML(xml);
            $xml = $(xmlDoc);
            var settingHTML = "";
            settingHTML += "<option value = 'null' > Pick a Location </option>";
            $xml.find('root').each(function () {
                $xml.find('CompanyName').each(function () {
                    // one at a time
                    $(this).children().each(function () {
                        settingHTML += "<option value='" + $(this).text() + "' >" + $(this).text() + "</option>";
                    });
                });
            });
            $("#company").html(settingHTML);
        }
    });
}

我还将添加我的 c# 代码,因为它似乎可能是我返回字符串的方式

public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string root = "<root>\n";
        root += fill_company();
        root += "</root>";
        Response.Write(root);
    }

    protected string fill_company()
    {
        OdbcDataReader reader;
        string myConnString = "DSN=DevSql12-1;";
        OdbcConnection conn = new OdbcConnection(myConnString);
        OdbcCommand mycommand = new OdbcCommand();
        mycommand.Connection = conn;
        conn.Open();
        mycommand.CommandText = "SELECT CompanyName FROM [PS_Settings].[cams].[Client];";
        reader = mycommand.ExecuteReader();
        string CompanyLocation = "";
        CompanyLocation += "<CompanyName>\n";
        object[] meta = new object[1];
        bool read;
        if (reader.Read() == true)
        {
            do
            {
                int NumberOfColumns = reader.GetValues(meta);
                for (int i = 0; i < NumberOfColumns; i++)
                {
                 CompanyLocation += "\t<option>" + meta[i].ToString() + "</option>\n";
                }
                read = reader.Read();
            } while (read == true);
        }
        CompanyLocation += "</CompanyName>\n";
        return CompanyLocation;
    }
}

【问题讨论】:

标签: c# javascript html ajax xml


【解决方案1】:

问题是我没有显示实际输出(实际上不是 AAA、BBB),但我出错的原因是因为其中一个选项有一个“&”,而我忘了转义它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多