php - 如何使用 Ajax 和 json 从 mysql 中填充选择

标签 php jquery mysql json ajax

我在 HTML 中有一个空的选择,我想通过数据库填充它。

我有一个按钮可以打开模态框并传递一个 id。使用该 ID,我从数据库中获取数据并填写一家公司的所有表单字段。然而,一家公司可以有多名员工,所以我想填写一个选择,以便显示与公司具有相同 ID 的所有员工。

例如:

公司 ID 是 43,我使用此 ID 填写所有表单字段(名称、位置等)并从数据库中获取数据。 在表 employee 中有 3 名员工的 ID 为 43 为 FK,我们将他们命名为 hans、max 和 peter。 现在我想填充一个显示所有 3 个的选择,以便用户可以选择其中一个,并根据该选择填充一个空表单,以便可以对其进行编辑。

我假设这涉及一个循环,但我不确定该怎么做。不确定它是否相关,但我所有的 mysqli 调用都使用 prepare,因为我读过这更安全。

到目前为止,我尝试过的循环是这样的,但它不起作用。我不确定是循环不工作还是我试图填充选择错误。

这是在一个选择中,所有输入字段都会被填充。

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 成功中填充选择

$.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>');
                });


            }


        });
    });

最佳答案

在你的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>');
            });
            }
        });
    });

关于php - 如何使用 Ajax 和 json 从 mysql 中填充选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380024/

相关文章:

php - 使用 ob_start 时如何在 php 中使用 header 位置重定向?

php - 计算递归函数被调用的次数

javascript - HTML 动态添加文件输入不起作用

php - MySQL 连接 "Cost"?

php - 特色图片的交替比例

php - 如何将 SOAP 响应转换为 PHP 数组?

javascript - Bootstrap toast 不显示

javascript - 未捕获的语法错误 : Unexpected identifier in service liferay

mysql - 当表的名称带有下划线时,PDO 在获取时返回 false

python - 如何让 Django 在 XAMPP 中与 MySQL 一起工作?