javascript - 我想使用 jquery 和 php 自动填充下拉列表

标签 javascript php jquery json ajax

下面是我应用查询的 php 文件

    $host = "localhost";
    $user = "root";
    $pass = "abc123";
    $databaseName = "class";
    $con = mysql_connect($host,$user,$pass);
    $dbs = mysql_select_db($databaseName, $con);
    $result = mysql_query("SELECT id, name FROM lecturer");
    if (mysql_num_rows($result)) {
        $data = array();
        while ($row = mysql_fetch_assoc($result)) {
            $data[] = array(
               'id' => $row['id'],
               'name' => $row['name']
            );
        }
        header('Content-type: application/json');
        echo json_encode( $data );  
    }  

这是我应用 javascript 的另一个文件。我搜索了很多相同的查询但找不到解决方案。请帮助我

    <script type="text/javascript">
        function lecturer(){
            $("#a1_title").empty();
            $("#a1_title").append("<option>Default</option>");
            $.ajax({
                    type:'POST',
                    url : 'get-data.php',
                    contentType :"application/json; charset-utf8",
                    dataType:'json',
                    type:'POST',
                    success:function(data){
                        $('#a1_title').empty();
                        $('#a1_title').append("<option>Default</option>");
                        $.each(data, function(i, data){
                            $('#a1_title').append('<option   value="'+data[i].id+'">'+data[i].name+'</option>');
                        });
                    },
                    complete: function(){
                    }
            )};
        }
        $(document).ready(function(){
            lecturer();
        });
    </script>

请帮助我,我已经尝试解决这个问题,但我无法做到。

最佳答案

您的 PHP 代码语法错误,因为您的 array() 被花括号而不是圆括号包围。您的 $.ajax 中也有一些错误,一个错误的括号。此外,您的 $.each() 函数中不需要迭代器 ([i]) - 您可以通过关联 this 迭代的值。正如@Jay Blanchard 所说,mysqli 在这里使用得最好。

尝试以下版本:

PHP:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$databaseName = "test";
$con = mysqli_connect($host, $user, $pass, $databaseName);
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT id, name FROM lecturer");
if (mysqli_num_rows($result)) {
    $data = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
    }
    header('Content-type: application/json');
    echo json_encode($data);
}
?>

JS:

<script type="text/javascript">
    function lecturer() {
        $("#a1_title").empty();
        $("#a1_title").append("<option>Default</option>");
        $.ajax({
            type: 'POST',
            url: 'get-data.php',
            contentType: "application/json; charset-utf8",
            dataType: 'json',
            type: 'POST',
            success: function (data) {
                $('#a1_title').empty();
                $('#a1_title').append("<option>Default</option>");
                $.each(data, function (k, v) {
                    $('#a1_title').append('<option value="' + v.id + '">' + v.name + '</option>');
                });
            },
            complete: function () {
            }
        });

    }
    $(document).ready(function () {
        lecturer();
    });
</script>

关于javascript - 我想使用 jquery 和 php 自动填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487469/

相关文章:

javascript - IE11 边缘模式 - Sarissa.js

javascript - 此链接中的 "message queue"是什么意思?

javascript - javascript 中的换行符\n 不起作用

php - $_GET 未传递给 SELECT 查询

PHP - 使用 header() 传递 POST 变量?

php - 在mysql中选择多列的不同行

javascript - 如何在 jQuery 中使用数据属性?

jquery - Jssor 全宽度 slider - 连续循环/下一个/上一个图像部分可见

javascript - window.onblur 不工作

jquery - 如何为 XING 设置共享计数器,就像对 Facebook 等设置一样?