从php json文件中检索名称ID

时间:2014-03-31 06:48:27

标签: php mysql json

我使用json方法将这个php文件用于国家/州/城镇列表。

PHP文件:

sleep(1);

$stateID = $_GET['stateID'];
$countyID = $_GET['countyID'];
$townID = $_GET['townID'];
$html = $_GET['html'];

$states = array();
$states['MA'] = "Massachusetts";
$states['VT'] = "Vermont";
$states['SC'] = "South Carolina";


$counties = array();
$counties['MA']['BARN'] = 'Barnstable';
$counties['MA']['PLYM'] = 'Plymouth';
$counties['VT']['CHIT'] = 'Chittenden';
$counties['SC']['ANDE'] = 'Anderson';

$towns = array();
$towns['MA']['BARN']['CHA'] = "Chatham";
$towns['MA']['BARN']['DEN'] = "Dennis";
$towns['MA']['BARN']['YAR'] = "Yarmouth";
$towns['MA']['PLYM']['BRI'] = "Bridgewater";
$towns['MA']['PLYM']['MAR'] = "Marshfield";
$towns['MA']['PLYM']['WAR'] = "Wareham";
$towns['VT']['CHIT']['BUR'] = "Burlington";
$towns['VT']['CHIT']['ESS'] = "Essex";


if($stateID && !$countyID && !$townID){
    echo json_encode( $counties[$stateID] );
} elseif( $stateID && $countyID && !$townID ) {
    echo json_encode( $towns[$stateID][$countyID] );
} elseif( isset($villages[$stateID][$countyID][$townID]) ) {
    echo json_encode( $villages[$stateID][$countyID][$townID] );
} else {
    echo '{}';
}

我从MySql数据库中检索值(例如:国家/地区的MA)。 现在我需要将国家/州/城镇名称打印到这样的选择框下拉列表中。

    <select id="country" class="validate[required]" name="country">
            <option value="0">Choose ...</option>
            <option selected="selected" value="'.$country['selector'].'">Show Country Name From php File</option>
    </select>
    <select id="state" class="validate[required]" name="state">
        <option value="0">Choose ...</option>
        <option selected="selected" value="'.$state['selector'].'">Show state Name From php File</option>
    </select>
    <select id="town" class="validate[required]" name="town">
        <option value="0">Choose ...</option>
        <option selected="selected" value="'.$town['selector'].'">Show town Name From php File</option>
    </select>

我该如何打印?

1 个答案:

答案 0 :(得分:0)

创建一个调用数据库的php文件。结果通常存储在php数组中。您可以使用json_encode()(http://www.php.net/manual/en/function.json-encode.php)将此数组转换为Json。

只需在php文件中回显即可。

现在用jQuery调用该脚本。有一个名为getJson()的简单jQuery方法。 - 在此处阅读更多相关信息:http://api.jquery.com/jquery.getjson/

这将以Json形式将MySQL结果带给您 - 您现在可以使用JavaScript循环结果,并相应地显示表单。一个简单的例子是(我没有测试过这个,但我希望你能得到这个想法):

$.each(data, function() {
     $('#mySelect')
     .append($("<option></option>")
     .attr("value",data[row].NameOfColumn)
     .text(value));
     row ++; 
});

请注意列的名称 - 这是您要查找的值的键名称。在您的情况下,您可能也想循环键 - 使用外部循环 - 因为数据似乎是在这样的情况下呈现。