javascript - 跳过从数据库到 html 的 AJAX 值

标签 javascript jquery ajax

我有这些员工信息,如果您单击员工框,就会显示这些信息。但有时某些字段的值返回 null,即使它们有值,但当我重试时,它会返回 ok。这是一些代码问题吗?这是我的代码...

首先我将元素存储到一个对象中

var uamnumber = $(this).find(".box-list-agents-uamnumber").text();
var agentInfo = $(this).find(".box-list-agents-info").text().split("/");

var agentElement = {
        txtUam: $("#search-txt-uam-number"),
        txtFirstName: $("#search-txt-first-name"),
        txtMiddleName: $("#search-txt-middle-name"),
        txtLastName: $("#search-txt-last-name"),
        txtContactNumber: $("#search-txt-contact-number"),
        txtEmailAddress: $("#search-txt-email-address"),
        txtClassification: $("#search-txt-classification"),
        txtAgentStatus: $("#search-txt-agent-status"),
        txtReasonResignation: $("#search-txt-reason-resignation"),

        txtCsp: $("#search-txt-csp-name"),
        txtProgramId: $("#search-txt-program-name"),
        txtSite: $("#search-txt-site-name"),
        txtBirthDate: $("#search-txt-birth-date"),
        txtLiveDate: $("#search-txt-live-date"),
        txtEndDate: $("#search-txt-end-date"),

        txtProgram: $("#search-program-name")

    };
    var agentParam = {
        uam: uamnumber,
        csp: agentInfo[0],
        program: agentInfo[1]
    }
Dashboard_GetAgentInfo(agentParam, agentElement);

    $("#search-well-tool-access").hide();
    $("#search-well-agent-info").fadeIn();

这是已调用的函数。

function Dashboard_GetAgentInfo(agentInfo,agentElement) {
$.ajax({

    type: "POST",
    url: "IROA_StoredProcedures.asmx/Dashboard_GetAgentInfo",
    data: JSON.stringify(agentInfo),
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function (response) {

        var uamdetails = response.d;
        var appendItem = "";

        $.each(uamdetails, function (index, Dashboard_GetAgentInfoInfo) {

            var uamnumber = Dashboard_GetAgentInfoInfo.uamnumber;
            var firstname = Dashboard_GetAgentInfoInfo.firstname;
            var middlename = Dashboard_GetAgentInfoInfo.middlename;
            var lastname = Dashboard_GetAgentInfoInfo.lastname;
            var contactnumber = Dashboard_GetAgentInfoInfo.contactnumber;
            var emailaddress = Dashboard_GetAgentInfoInfo.emailaddress;
            var csp = Dashboard_GetAgentInfoInfo.csp;
            var cspid = Dashboard_GetAgentInfoInfo.cspid;
            var program = Dashboard_GetAgentInfoInfo.program;
            var programid = Dashboard_GetAgentInfoInfo.programid;
            var site = Dashboard_GetAgentInfoInfo.site;
            var siteid = Dashboard_GetAgentInfoInfo.siteid;
            var birthdate = Dashboard_GetAgentInfoInfo.birthdate;
            var livedate = Dashboard_GetAgentInfoInfo.livedate;
            var enddate = Dashboard_GetAgentInfoInfo.enddate;
            var classification = Dashboard_GetAgentInfoInfo.classification;
            var agentStatus = Dashboard_GetAgentInfoInfo.agentstatus;
            var reasonResignation = Dashboard_GetAgentInfoInfo.reasonresignation;

            $(agentElement.txtUam).val(uamnumber);
            $(agentElement.txtFirstName).val(firstname);
            $(agentElement.txtMiddleName).val(middlename);
            $(agentElement.txtLastName).val(lastname);
            $(agentElement.txtContactNumber).val(contactnumber);
            $(agentElement.txtEmailAddress).val(emailaddress);
            $(agentElement.txtClassification).val(classification);
            $(agentElement.txtAgentStatus).val(agentStatus);
            $(agentElement.txtReasonResignation).val(reasonResignation);

            $(agentElement.txtCsp).val(cspid)
            $(agentElement.txtProgramId).val(programid);
            $(agentElement.txtSite).val(siteid);

            $(agentElement.txtBirthDate).val(birthdate);
            $(agentElement.txtLiveDate).val(livedate);
            $(agentElement.txtEndDate).val(enddate);


            $(agentElement.txtProgram).text(program);

            NumbersOnly();

        });

    },

    error: function (XMLhttpRequest) {
        alert("error in Dashboard_GetAgentInfo");
        console.log(XMLhttpRequest);
    }

});
}

这是已调用的 Web 服务

public List<Dashboard_GetAgentInfoDetails> Dashboard_GetAgentInfo(string uam, int csp, int program) /*int CSP, int Program*/
    {
        DataTable table = null;
        SqlCommand cmd = new SqlCommand();

        cmd.CommandText = "[Dashboard_GetAgentInfo]";
        cmd.Parameters.AddWithValue("@uam", uam);
        cmd.Parameters.AddWithValue("@csp", csp);
        cmd.Parameters.AddWithValue("@program", program);

        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        table = this.dbConn.ExecuteDataTable(cmd);

        Dashboard_GetAgentInfo_Details.Clear();

        foreach (DataRow row in table.Rows)
        {
            Dashboard_GetAgentInfoDetails _list = new Dashboard_GetAgentInfoDetails();

            _list.uamnumber = row["UAM #"].ToString();
            _list.firstname = row["First Name"].ToString();
            _list.middlename = row["Middle Name"].ToString();
            _list.lastname = row["Last Name"].ToString();
            _list.contactnumber = row["Contact Number"].ToString();
            _list.emailaddress = row["Email Address"].ToString();
            _list.csp = row["CSP"].ToString();
            _list.cspid = Convert.ToInt32(row["CSPID"].ToString());
            _list.program = row["Program"].ToString();
            _list.programid = Convert.ToInt32(row["ProgramID"].ToString());
            _list.site = row["Site"].ToString();
            _list.siteid = Convert.ToInt32(row["SiteID"].ToString());
            _list.birthdate = row["BirthDate"].ToString();
            _list.livedate = row["LiveDate"].ToString();
            _list.enddate = row["EndDate"].ToString();
            _list.classification = Convert.ToInt32(row["Classification"].ToString());
            _list.agentstatus = row["Agent Status"].ToString();
            _list.reasonresignation = row["Reason Resignation"].ToString();

            Dashboard_GetAgentInfo_Details.Add(_list);
        }

        return Dashboard_GetAgentInfo_Details;
    }

将元素存储到对象中并将其作为参数传递是一种很好的编码实践吗?即使当我尝试 console.log 值并且它返回正常时,select 没有值的原因可能是什么?

最佳答案

我认为问题出在这里:

$(agentElement.txtUam).val(uamnumber);
$(agentElement.txtFirstName).val(firstname);
...

你应该这样做:

agentElement.txtUam.val(uamnumber);
agentElement.txtFirstName.val(firstname);
...

不需要使用jquery选择器$,因为agentElement.txtUam已经是一个,在对象内收集元素也是一种最佳实践,因为你不能将每一个作为参数传递。

关于javascript - 跳过从数据库到 html 的 AJAX 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254919/

相关文章:

javascript - 在 Angular 4 的函数内使用数组

javascript - Ajax Post 请求不起作用?

javascript - 停止后重新启动 CSS3 动画

特定链接的 Jquery 点击事件

php - 通过ajax提交php数组不起作用

javascript - PHP - 阻止攻击者在输入框中使用 javascript

javascript - Mongoose、express 返回空数组

javascript - 如何在Rails中立即定期执行ajax查询

javascript - Ajax 与 jQuery 同步。是否可以?

javascript - Monodroid JavaScript 接口(interface)