2014-03-31 94 views
0

我有這個PHP文件的國家/州/鎮使用json方法列表。從php json文件檢索名稱ID

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> 

我該如何打印?

+0

'<選項選擇= 「選擇」 值= 「 '$國家[ '選擇'。 ' 」>「'。$國家[ '選擇'。'」' –

+0

你想填充盒服務器端還是使用AJAX? JSON(甚至MySQL)的使用讓我感到困惑。 – eggyal

+0

在選項標籤之間打印相同的值也 –

回答

0

創建一個可以調用數據庫的php文件。結果通常存儲在一個php數組中。你可以使用json_encode()將這個數組轉換成Json()(http://www.php.net/manual/en/function.json-encode.php)。

只需在php文件中回顯。

現在使用jQuery調用該腳本。有一個簡單的名爲getJson()的jQuery方法。 - 閱讀更多關於它的地方:http://api.jquery.com/jquery.getjson/

這會將MySQL結果帶給你 - 以Json形式 - 你現在可以使用JavaScript循環結果,並相應地顯示錶單。一個簡單的例子是(我沒有測試過這一點,但我希望你的想法):

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

注列的名稱 - 這就是你正在尋找的值項的名稱。在你的情況下,你可能想要循環鍵 - 外部循環 - 因爲數據似乎是在這樣的事情。