【问题标题】:Dynamic country, state, city dropdown select动态国家、州、城市下拉选择
【发布时间】:2017-08-27 09:55:26
【问题描述】:

我有 1 个静态(国家)和 2 个动态(州和城市)下拉选择。

我正在使用 Select2。

例如,荷兰每个州都有大量城市。 加载这个很难处理。

如果有以下 JS 在我的用户页面上:

$(".state").change(function()
    {
        var id=$(this).val();
        var dataString = 'id='+ id;

        $.ajax
        ({
            type: "POST",
            url: "../../get/get_city.php",
            data: dataString,
            cache: false,
            success: function(html)
            {
                $(".city").html(html);
            } 
        });
    });

get_city.php 正在运行,看起来像:

if($_POST['id'])
{
    $id=$_POST['id'];

    $stmtc = $admin_home->runQuery("SELECT * FROM city WHERE state_id=:id");
    $stmtc->execute(array(':id' => $id));
    ?><option selected="selected">Selecteer een woonplaats:</option><?php
    while($rowc=$stmtc->fetch(PDO::FETCH_ASSOC))
    {
        ?>
        <option value="<?php echo $rowc['city_id']; ?>"><?php echo $rowc['city_zip']; ?> <?php echo $rowc['city_name']; ?></option>
        <?php
    }
}

我也已经尝试使用 select2 中的 AJAX 单独使用此代码(也可以使用):

$('.itemName').select2({
        placeholder: 'Select an item',
        ajax: {
          url: '../../get/get_city_ajax.php',
          dataType: 'json',
          delay: 250,
          processResults: function (data) {
            return {
              results: data
            };
          },
          cache: true
        }
      });

get_city_ajax.php 看起来像:

    $stmtc = $admin_home->runQuery("SELECT * FROM city "
                . "WHERE city_name LIKE '%".$_GET['q']."%' LIMIT 10");
    $stmtc->execute();
        $json = [];
    while($rowc=$stmtc->fetch(PDO::FETCH_ASSOC))
    {
        $json[] = ['id'=>$rowc['city_id'], 'text'=>$rowc['city_name']];
    }


echo json_encode($json);

现在需要将两者结合起来才能仅获取所选州的城市。

我尝试了很多,但无法正常工作。

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    这个解决方案对我来说很好:

    $(".state").change(function()
        {
            var id=$(this).val();
            var dataString = 'id='+ id;
            $('.city').select2({
    
            placeholder: 'Selecteer een stad',
            ajax: {
              url: '../../get/get_city_ajax.php?'+dataString,
              dataType: 'json',
              delay: 250,
              processResults: function (data) {
                return {
                  results: data
                };
              },
              cache: true
            }
          });
          });
    

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2011-01-07
      • 2019-02-15
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多