我在HTML中有一个空的选择,我希望通过数据库填充。
我有一个打开Modal并传递id的按钮。使用该ID,我从数据库中获取数据并填写一家公司的所有表单字段。但是,公司可以拥有多名员工,因此我希望填写一份选项,以便显示与公司具有相同ID的所有员工。
例如:
公司ID为43,我使用此ID填写所有表单字段(名称,位置等)并从数据库中获取数据。 在员工表中,有3名员工将ID 43作为FK,我们将其命名为hans,max和peter。 现在我想填充一个显示其中所有3个的选择,以便用户可以选择其中一个,并根据该选择填充一个空表单,以便可以对其进行编辑。
我假设这涉及一个循环,但我不知道该怎么做。不确定它是否相关,但我所有的mysqli调用都使用prepare,因为我读过这个更安全。
到目前为止我尝试过的循环是这样的,但它不起作用。我不确定它是否是循环不起作用或者我是否试图填充选择错误。
这是在select中,并且所有输入字段都已填充。
while ($row = $result->fetch_assoc()){
$prename= $row['prename'];
$surname= $row['surname'];
$users_arr[] = array("prename" => $prename, "surname" => $surname);
}
然后我按如下方式返回数据
echo json_encode(array('users_arr'=>$users_arr));
并尝试在AJAX成功中填充select
$.each(data.users_arr, function(key, val){
$("#contact_persons").append('<option id="' + data.prename + '">' + data.surname + '</option>');
});
由于
编辑:完整的Ajax调用:
$.ajax({
url: url,
data: data,
dataType: 'json',
cache: false,
type: "POST",
error: function () {
$('#alertdone').removeClass('hidden');
},
//if ajax call is successful populate form fields and hide error message
success: function (data) {
//hide error message
$('#alertdone').addClass('hidden');
$.each(data.users_arr, function(key, val){
$("#contact_persons").append('<option id="' + data.prename + '">' + data.surname + '</option>');
});
}
});
});
答案 0 :(得分:1)
在您的AJAX成功中,您可以尝试
var d = $.parseJSON(data);
$.each(d.users_arr, function(index, element) {
$("#contact_persons").append('<option id="' + element.prename + '">' + element.surname + '</option>');
});
$.ajax({
url: url,
data: data,
cache: false,
type: "POST",
error: function () {
$('#alertdone').removeClass('hidden');
},
success: function (data) {
//hide error message
$('#alertdone').addClass('hidden');
var d = $.parseJSON(data);
$.each(d.users_arr, function(index, element) {
$("#contact_persons").append('<option id="' + element.prename + '">' + element.surname + '</option>');
});
}
});
});