2015-02-07 102 views
4

阿賈克斯運行Ajax請求

$(document).ready(function() { 
    $.ajax({ 
     type: 'POST', 
     url: '../include/ListOfCities.php', 
     dataType: "json", 
     data: { 
      Country: "Japan" 
     }, 
     success: function(data) { 
      console.log(data); 
      var city = ('#city'); 
      $(city).empty(); 
      for (var i = 0; i < data.length; i++) { 
       $(city).append('<option id=' + data[i].sysid + ' value=' + data[i].city_name + '>' + data[i].city_name + '</option>'); 

      } 
     } 

    }); 
}); 

PHP

$country = mysql_real_escape_string($_POST['Country']); 
$stmt = $dbh->prepare("SELECT * FROM city_tbl WHERE country_name = ? "); 
$stmt->bindValue(1, $country, PDO::PARAM_STR); 
if ($stmt->execute()) { 
    if ($stmt->rowCount() > 0) { 
     while ($selected_row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
      $citylist[] = array('sysid' => $selected_row['sys_id'], 'code' => $selected_row['city_code'], 'name' => $selected_row['city_name'], 'parentid' => $selected_row['parent_id']); 
     } 
     $input = array_map("unserialize", array_unique(array_map("serialize", $citylist))); 
     echo json_encode($input, JSON_UNESCAPED_UNICODE); 
    } 
} 

我想在選擇選項菜單,顯示在日本的所有城市,我要加載的城市時,頁面加載我發送像上面的ajax請求,但我沒有得到任何結果上面的Ajax工作正常,當我在按鈕上使用它。發送ajax請求不同於按鈕點擊和文檔準備。任何建議如何使文檔準備好ajax請求讚賞

+0

你能告訴你的按鈕處理程序點擊?.. – qtgye 2015-02-07 04:55:55

+0

我只加'$( '#anybutton')。點擊(函數(){'行'$以上。 ajax({'和我會運行,但我想加載頁面時加載名稱,所以我刪除'onclick'事件,認爲它會加載文件準備好時的名稱,但它沒有顯示任何console.log或選項在選擇 – guradio 2015-02-07 04:58:53

+0

你的代碼應該工作正常,你看到網絡請求在開發者控制檯 - 網絡選項卡? – 2015-02-07 05:20:02

回答

5

只需在您的ajax請求中設置async:false即可。所以最終的代碼將

$(document).ready(function() { 
    $.ajax({ 
     type: 'POST', 
     url: '../include/ListOfCities.php', 
     dataType: "json", 
     async:false, 
     data: { 
      Country: "Japan" 
     }, 
     success: function(data) { 
      console.log(data); 
      var city = ('#city'); 
      $(city).empty(); 
      for (var i = 0; i < data.length; i++) { 
       $(city).append('<option id=' + data[i].sysid + ' value=' + data[i].city_name + '>' + data[i].city_name + '</option>'); 

      } 
     } 

    }); 
});