php - 当变量存在时ajax下拉框

标签 php jquery html json ajax

我正在尝试对下拉框进行ajax调用(动态)

  • 当变量 $place 可用时,它将进行 ajax 调用并填充 下拉框。

我试图将变量 $place 传递给 listplace.php 并将其编码为 json 数据并获取 datalist 值,但不确定编码的 json 文件是否正确

我刚刚尝试了一下,不确定下面的代码是否有效,请帮忙。

下拉框

<select>
  <option selected disabled>Please select</option>
</select>

Ajax 调用

<?php if(isset($_GET['place']) && $_GET['place'] !='') {?>
<script>
    $.ajax({
        type: "POST",
        data: {place: '<?= $place ?>'},
        url: 'listplace.php',
        dataType: 'json',
        success: function (json) {
            var $el = $("#name");
            $el.empty(); // remove old options
            $el.append($("<option></option>")
                .attr("value", '').text('Please Select'));
        }
    });
</script>
<?php } ?>

listplace.php

<?php
$sql = @mysql_query("select placename from employee where placename= '$place'");
$rows = array();
while($r = mysql_fetch_assoc($sql)) {
  $rows[] = $r;
}

最佳答案

将 AJAX 调用更改为以下内容。

<?php if (isset($_GET['place']) && $_GET['place'] != '') { ?>
    <script>
        $.ajax({
            type: "POST",
            data: {place: '<?= $_GET['place'] ?>'},
            url: 'listplace.php',
            dataType: 'json',
            success: function (json) {
                if (json.option.length) {
                    var $el = $("#name"); 
                    $el.empty(); // remove old options
                    for (var i = 0; i < json.option.length; i++) {
                        $el.append($('<option>',
                            {
                                value: json.option[i],
                                text: json.option[i]
                            }));
                    }
                }else {
                    alert('No data found!');
                }
            }
        });
    </script>
<?php } ?>

你的 PHP

<?php
$place = $_POST['place'];
$sql = @mysqli_query($conn,"select placename from employee where placename= '$place'");
$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
    $rows[] = $r['placename'];
}
if (count($rows)) {
    echo json_encode(['option'=> $rows]);
}else {
    echo json_encode(['option'=> false]);
}

关于php - 当变量存在时ajax下拉框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44118147/

相关文章:

php - 将 PHP 脚本转换为可执行文件

javascript - 使用 javascript 选择等于 php 变量的下拉值

php - 在多个选项标签(列表/菜单)中设置类 ='selected '

javascript - Cake PHP 表单助手。替换输入值

html - 如何使用css创建带有数字点的垂直线?

php - 如何将CSS类应用于上传的图片?

javascript - 数据表未显示正确的值

javascript - 使用 Jquery 过滤表格数据

javascript - 从 URL 中提取音频文件持续时间

java - 如何将变量从 HTML 传递到 Java?