gpt4 book ai didi

javascript - 使用 selectize multiselect 将值传递给数据库

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:07 24 4
gpt4 key购买 nike

我有一个带有多选选择“部门”下拉列表的“添加员工”模式。单击按钮时,将运行 ajax 调用以调用相应的 Controller 并将值传递给数据库。除了“部门”下拉菜单,我可以传递所有内容。

我试过:

$.ajax({
...
data: { ..., Department: $("#cmbAddDepartment").val(), .... }
})


$.ajax({
...
data: { ...., Department: $("#cmbAddDepartment").getValue(), ... }
})

var selectize = $('#cmbAddDepartment').get(0).selectize;
var cmbAddDepartment=selectize.getValue();
$.ajax({
...
data: { ... , Department: cmbAddDepartment, ... }
})

有趣的是,所有这些都在 alert() 中工作,而不是在 ajax 数据中工作。

我正在使用: Bootstrap 4 阿尔法 6,JQuery 3.2.1,独立选择 0.12.4

编辑:仅供引用,我所有其他组合框都是单选(仍然选择),$("#cmbAddSomething").val()` 对它们有效。

编辑 2:这是 Controller 和( View )模型

View 模型 - vmEmpCreate.cs

public class vmEmpCreate
{
public vmEmpCreate()
{
//constructor
}

//combo
public string Company { get; set; }
public string Site { get; set; }
public string[] Department { get; set; } //can be multiple
public string ProductionLine { get; set; }
public IEnumerable<SelectListItem> AddCompany { get; set; }
public IEnumerable<SelectListItem> AddSite { get; set; }
public IEnumerable<SelectListItem> AddDepartment { get; set; }
public IEnumerable<SelectListItem> AddProductionLine { get; set; }

}

public class MyListSelectForAdd
{
public string Key { get; set; }
public string Display { get; set; }
}

Controller - Controller.cs

[HttpPost]
public ActionResult AddEmployee(vmEmpCreate vmc)
{
if (ModelState.IsValid)
{
modEmployee addemp = new modEmployee();

addemp.Company = vmc.Company;
addemp.Site = vmc.Site;
addemp.Department = vmc.Department;
...
addemp.Remarks = vmc.Remarks;

conn = new SqlConnection(someConnectionString);
conn.Open();
comm = new SqlCommand("insert into someTable (company, site, department, ..., remarks) values ('"
+ addemp.Company + "' , '"
+ addemp.Site + "' , '"
+ addemp.Department + "' , '"
...
+ addemp.Remarks + "')", conn);
comm.ExecuteNonQuery();
conn.Close();
}

return PartialView();
}

编辑 3: 根据建议,我用 chrome 检查器检查了我的程序以查看是否有任何错误,但没有出现。

最佳答案

我对 selectize 不是很熟悉,但是为了发送一组信息,您需要将其存储在一个对象(也称为关联数组)中:

var selectize = $('#cmbAddDepartment').get(0).selectize;
var cmbAddDepartment=selectize.getValue();

$.ajax({
...
data: {
... ,
Department: cmbAddDepartment,
...
}
});

您可以根据需要向其中传递尽可能多的数据。因此,如果您的所有方法都有效,请使用最适合您的方法,确保数据包含在括号中。

更多关于 JavaScript Objects

关于javascript - 使用 selectize multiselect 将值传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47170990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com