2015-01-21 13 views
5

Tôi có here mã và luồng dự án của tôi tôi có 3 lựa chọn ở đây cho lục địa một cho quốc gia một thành phố tôi lấy dữ liệu để chọn các yêu cầu ajax. tôi chỉ muốn tạo một chút ưa thích vì vậy tôi muốn có một vài chức năngchọn tùy chọn tạo ra giá trị từ ajax khi thay đổi

1.Khi Lục địa chọn danh sách quốc gia cho lục địa đó được liệt kê trong danh sách quốc gia khi thay đổi xảy ra, tôi muốn thành phố hiển thị các thành phố của mục nhập đầu tiên trong nước hiện tại là nó không xảy ra những gì tôi làm là tôi vẫn cần phải thay đổi mục nhập ở quốc gia chọn để hiển thị danh sách các thành phố

2.Question là tôi cần phải thêm một yêu cầu ajax bên trong yêu cầu ajax cho lục địa tôi không chắc chắn này là khả thi tôi đã cố gắng nó, nó không phải đang làm việc cho bây giờ

Ajax Mã

$('.continentname').change(function() { 
     var id = $(this).find(':selected')[0].id; 
     //alert(id); 
     $.ajax({ 
      type:'POST', 
      url:'../include/continent.php', 
      data:{'id':id}, 
      success:function(data){ 
       // the next thing you want to do 
    var country= document.getElementById('country'); 
       $(country).empty(); 
    var city = document.getElementById('city'); 
       $(city).empty(); 
    for (var i = 0; i < data.length; i++) { 
    $(country).append('<option id=' + data[i].sysid + ' value=' + data[i].name + '>' + data[i].name + '</option>'); 
    } 
      } 
     }); 

    }); 

$('.countryname').change(function() { 
     var id = $(this).find(':selected')[0].id; 
     $.ajax({ 
      type:'POST', 
      url:'../include/country.php', 
      data:{'id':id}, 
      success:function(data){ 
       // the next thing you want to do 
    var city = document.getElementById('city'); 
       $(city).empty(); 
    for (var i = 0; i < data.length; i++) { 
    $(city).append('<option id=' + data[i].sysid + ' value=' + data[i].name + '>' + data[i].name + '</option>'); 
    } 
      } 
     }); 

    }); 

Từ cơ sở dữ liệu tôi đặt giá trị vào tùy chọn chọn như

$("#continent").val(continentid); 
$("#continent").change(); 
$("#country").change(); 
$("#country").val(countryid); 
$("#city").val(cityid); 

Trả lời

5

Bạn có thể kích hoạt một sự kiện thay đổi cho các phần tử nước một khi nó được dân cư

$('.continentname').change(function() { 
    var id = $(this).find(':selected')[0].id; 
    //alert(id); 
    $.ajax({ 
     type: 'POST', 
     url: '../include/continent.php', 
     data: { 
      'id': id 
     }, 
     success: function (data) { 
      // the next thing you want to do 
      var $country = $('#country'); 
      $country.empty(); 
      $('#city').empty(); 
      for (var i = 0; i < data.length; i++) { 
       $country.append('<option id=' + data[i].sysid + ' value=' + data[i].name + '>' + data[i].name + '</option>'); 
      } 

      //manually trigger a change event for the contry so that the change handler will get triggered 
      $country.change(); 
     } 
    }); 

}); 

$('.countryname').change(function() { 
    var id = $(this).find(':selected')[0].id; 
    $.ajax({ 
     type: 'POST', 
     url: '../include/country.php', 
     data: { 
      'id': id 
     }, 
     success: function (data) { 
      // the next thing you want to do 
      var $city = $('#city'); 
      $city.empty(); 
      for (var i = 0; i < data.length; i++) { 
       $city.append('<option id=' + data[i].sysid + ' value=' + data[i].name + '>' + data[i].name + '</option>'); 
      } 
     } 
    }); 
}); 
+0

đó là đơn giản tôi nghĩ rằng tôi cần thiết để thực hiện một ajax đó là một sự lãng phí thời gian tôi không thể đánh dấu vào nó trong 10 phút tiếp theo yên tâm tôi sẽ đánh dấu để những người khác có thể kiểm tra câu trả lời –

+0

Bạn đã thực hiện chỉnh sửa nào đối với câu trả lời? là '$ ('# country')' khác với 'document.getElementById ('country')'? –

+1

@HogRider kể từ khi bạn đang sử dụng jQuery .... nó là cách jQuery ... dễ dàng và ít đánh máy ... cũng không cần phải gọi '$ (quốc gia)' nhiều lần –

0

Bạn có thể có được cả hai danh sách quốc gia và danh sách thành phố của đất nước đầu tiên trong ../include/continent.php:

  1. Nhận mảng danh sách quốc gia
  2. Nhận danh sách thành phố nơi countryID = quốc gia [0] .id
  3. Kết hợp và thêm một trường khác như type

Ví dụ:

type  | sysid | name 
country | 1  | America 
country | 2  | Canada 
city  | 1  | New York 
city  | 2  | Los Angles 

Sau đó, trong javascript:

$.post("../include/continet.php", {"id":id}, function(data){ 
    $(country).empty(); 
    $(city).empty(); 
    for (var i = 0; i < data.length; i++) { 
    if(data[i].type == "country"){ 
     $(country).append... 
    } 
    else{ 
     $(city).append... 
    } 
    } 
}); 
Các vấn đề liên quan