2015-01-21 16 views
5

पर एजेक्स से मूल्य उत्पन्न करने का विकल्प चुनें मेरे पास here है मेरे प्रोजेक्ट का कोड और प्रवाह मेरे पास 3 देश के लिए महाद्वीप के लिए एक का चयन करें, मुझे शहर के लिए एक चुनने के लिए डेटा मिलता है, मैं AJAX अनुरोध से इन चयनों को पॉप्युलेट करने के लिए डेटा प्राप्त करता हूं, यह अब ठीक काम कर रहा है मैं बस थोड़ा फंतासी बनाना चाहता हूं इसलिए मुझे कुछ फ़ंक्शनविकल्प

1. जब महाद्वीप का चयन किया जाता है तो उस महाद्वीप के लिए देश की सूची देश सूची में सूचीबद्ध होती है जब परिवर्तन होता है तो मैं शहर भी चाहता हूं वर्तमान में देश में पहली प्रविष्टि के शहरों को दिखाएं ऐसा नहीं होता है जो मुझे लगता है कि मुझे अभी भी शहर में प्रविष्टि को बदलने की जरूरत है शहरों की सूची दिखाने के लिए

2.Question मैं महाद्वीप के लिए ajax अनुरोध के अंदर एक और ajax अनुरोध मुझे यकीन है कि यह एक व्यवहार्य मैं इसे करने की कोशिश की, यह अब के लिए काम नहीं कर रहा

अजाक्स कोड

$('.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>'); 
    } 
      } 
     }); 

    }); 
है नहीं कर रहा हूँ जोड़ने की जरूरत करना है

डेटाबेस से मैं की तरह

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

उत्तर

5

आप देश तत्व के लिए एक परिवर्तन घटना ट्रिगर कर सकते हैं विकल्प में मान का चयन कर दिया एक बार यह

+०१२३५१६४१० से भर जाता है
$('.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

कि सरल मैंने सोचा मैं एक और ajax यह समय की बर्बादी है मैं नहीं कर सकते अगले 10 मिनट के लिए यह टिकटिक आश्वस्त रहें मैं इतना टिकटिक जाएगा दूसरों कर सकते था बनाने के लिए आवश्यक था उत्तर की जांच करें –

+0

महोदय आपने उत्तर पर क्या संपादन किया था? '$ ('# देश')' document.getElementById ('country') 'से अलग है? –

+1

@ होग्राइडर जब से आप jQuery का उपयोग कर रहे हैं .... यह jQuery तरीका है ... आसान और कम टाइपिंग ... '$ (देश) 'कई बार –

0

आप ../include/continent.php में दोनों देश सूची और पहला देश के शहर सूची प्राप्त कर सकते हैं:

  1. देश सूची सरणी जाओ
  2. शहर सूची जहां countryID = देश [0] .id
  3. कम्बाइन जाओ उन्हें और तरह type

उदाहरण एक और क्षेत्र को जोड़ने:

type  | sysid | name 
country | 1  | America 
country | 2  | Canada 
city  | 1  | New York 
city  | 2  | Los Angles 
फिर जावास्क्रिप्ट में

:

$.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... 
    } 
    } 
}); 
संबंधित मुद्दे