【问题标题】:input API data into database only get array number not the string将 API 数据输入数据库仅获取数组编号而不是字符串
【发布时间】:2016-11-21 06:45:14
【问题描述】:

我尝试用省和市制作注册表单(从 API 数据中获取),我使用带有省和市列表的下拉列表,问题是下拉列表的值只有 Province_id 而不是省,所以如果我更改此代码

province = '<option value="'+n['province_id']+'">'+n['province']+'</option>';

province = '<option value="'+n['province']+'">'+n['province']+'</option>';

它成功获取下拉省份数据并将其输入数据库,但是当我更改代码时出现新问题,城市下拉列表未显示,因为列表城市显示基于省份 ID,我被困在这里试图找到我如何根据省份名称显示城市列表而不是 id

这是我的代码:

script.js

    $(document).ready(function(){
    loadProvinsi('#oriprovince');
    loadProvinsi('#desprovince');
    $('#oriprovince').change(function(){
        $('#oricity').show();
        var idprovince = $('#oriprovince').val();
        loadCity(idprovince,'#oricity')
    });
    $('#desprovince').change(function(){
        $('#descity').show();
        var idprovince = $('#desprovince').val();
        loadCity(idprovince,'#descity')
    });
});

function loadProvinsi(id){
    $('#oricity').hide();
    $('#descity').hide();
    $(id).html('loading...');
    $.ajax({
        url:'process.php?act=showprovince',
        dataType:'json',
        success:function(response){
            $(id).html('');
            province = '';
                $.each(response['rajaongkir']['results'], function(i,n){
                    province = '<option value="'+n['province_id']+'">'+n['province']+'</option>';
                    province = province + '';
                    $(id).append(province);
                });
        },
        error:function(){
            $(id).html('ERROR');
        }
    });
}
function loadCity(idprovince,id){
    $.ajax({
        url:'process.php?act=showcity',
        dataType:'json',
        data:{province:idprovince},
        success:function(response){
            $(id).html('');
            city = '';
                $.each(response['rajaongkir']['results'], function(i,n){
                    city = '<option value="'+n['city_id']+'">'+n['city_name']+'</option>';
                    city = city + '';
                    $(id).append(city);
                });
        },
        error:function(){
            $(id).html('ERROR');
        }
    });
}

process.php 片段

header("Content-Type: application/json");
require_once('idmore.php');
$IdmoreRO = new IdmoreRO();
if(isset($_GET['act'])):
    switch ($_GET['act']) {

        case 'showprovince':
            $province = $IdmoreRO->showProvince();
            echo $province;
        break;

最后是process.php?act=showprovince的视图

"rajaongkir": {
    "query": [ ],
    "status": {
        "code": 200,
        "description": "OK"
    },
    "results": [
        {
            "province_id": "14",
            "province": "Kalimantan Tengah"
        },
        {
            "province_id": "15",
            "province": "Kalimantan Timur"
        },
        {
            "province_id": "16",
            "province": "Kalimantan Utara"
        }
    ]
}

【问题讨论】:

    标签: php sql json


    【解决方案1】:

    将您的 loadprovince 函数更改为此

      function loadProvinsi(id){
        $('#oricity').hide();
        $('#descity').hide();
        $(id).html('loading...');
        $.ajax({
          url:'process.php?act=showprovince',
          dataType:'json',
          success:function(response){
            $(id).html('');
            province = '';
                var result = $.parseJSON(response['rajaongkir']['results']);
                $.each(result, function(i,n){
                    province = '<option value="'+n.province+'">'+n.province+'</option>';
                    province = province + '';
                    $(id).append(province);
                });
        },
        error:function(){
            $(id).html('ERROR');
        }
      });
    }
    

    您必须将 value 属性中的 province_id 更改为 province

    应该做的工作,并确保该列的数据类型不是 int

    【讨论】:

    • 我试过了,结果注册表中的省份列表消失了
    • 去掉value属性再试一次
    • 我尝试了你给我的第一个解决方案,它可以工作,但是显示新问题,没有province_id,列表城市没有出现
    • 列表省份未显示您的更新数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2017-12-10
    • 1970-01-01
    • 2017-10-29
    • 2020-01-04
    相关资源
    最近更新 更多