2012-05-26 40 views
1

我想做一個編輯頁面,當用戶轉到一個問題時(我有一個問題網站),他將有選擇編輯該問題,並且當用戶單擊以編輯問題,我想從數據庫中獲取有關該問題的所有信息,並將其放入編輯頁面,我這樣做,它可以很好地處理所有信息,但是我遇到了一些問題,它是:jQuery在5或6刷新後工作

我的編輯頁面上我有很多下拉列表和每個下拉用ajax jquery的從數據庫中獲取其選項

我的問題是,在過去4下拉列表

第一個下拉列表what the question about ,它有3個選項place , cell ,general 第二個下拉列表是什麼the city that question about,它有14個值 第三個下拉列表是什麼cell the question about及其選項來依賴於第二個下拉列表選項,我的意思是如果用戶在第二個下拉列表中設置一個城市,單元格下拉列表將有很多選項,但是如果他改變了城市,用戶將在單元格下拉列表中選擇新的選項 ,第四個下拉是what the place that the question about 所以當我打開編輯頁我必須填寫那些下拉列表與它的價值,每一個根據前面的下拉列表, ,我做到了,但我的問題是頁面作品良好後,4或者5刷新,而不是從一開始,我的意思是我必須刷新頁面4或5次,以獲得良好的效果,because on the first refresh the drop down list still empty , but i alert the results each refresh and i got the expected results

HTML中一些

<?php 
    $questionInfo = $this->questionInfo->fetch(); 
    $questionPlaceCountry = $this->questionPlaceCountry->fetch(); 
    $questionCell = $this->questionCell; 
?> 

<script type="text/javascript"> 
    var typeName= '<?php echo $questionInfo["typeName"]; ?>'; 
    var place = '<?php echo $questionPlaceCountry["placeName"]; ?>'; 
    var country = '<?php echo $questionPlaceCountry["countryName"]; ?>'; 
    var cell = '<?php echo $questionCell; ?>'; 
</script> 

<li> 
    <label>About</label> 
    <select name="about"id="aqAboutQuestion"></select> 
    <span class="errorMessage"></span> 
    <p id="aqCoutryAboutQuestion"> 
    <label>Select City</label> 
    <select name="city"class="CountrySelector1"></select> 
    </p> 
    <p id="aqCellAboutQuestion"> 
    <label>Select Cell</label> 
    <select name="cell"></select> 
    <span class="errorMessage"></span> 
    </p> 
    <p id="aqPlaceAboutQuestion"> 
    <label>Select Place</label> 
    <select name="place"></select> 
    <span class="errorMessage"></span> 
    </p> 
</li> 

一些jQuery代碼的

$.getJSON(
    "http://localhost/Mar7ba/Type/getAllTypes/TRUE", 
    function(data){ 

    var options = ''; 
    options+="<option>Select Type</option>"; 

    for(var i=0;i<data.length;i++){ 
     options += "<option value='"+data[i]+"'>"+data[i]+"</option>"; 
    } 

    if($("#addPlace #apTypeSelect").length){ 
     $("#addPlace #apTypeSelect").html(options); 
    } 

    if($('.TypeSelector').length){ 

     $('.TypeSelector').html(options); 
     if("#editOneQuestion"){ 

     $('.TypeSelector').val(typeName); 
     if(place!=null){ 

      $("#aqCoutryAboutQuestion").css("display","block"); 
      $("#aqCellAboutQuestion").css("display","block"); 
      $("#aqPlaceAboutQuestion").css("display","block"); 
      $("#aqAboutQuestion").val("Place"); 

      $("#aqCoutryAboutQuestion select").val(country); 

      $.getJSON(
      "http://localhost/Mar7ba/Cell/getCellsInCity/"+country+"/TRUE", 
      function(data1) { 

       var optoins1 = ''; 
        optoins1+="<option>Select Cell</option>"; 

       for(var i=0;i<data1.length;i++){ 
       optoins1+="<option value='"+data1[i]+"'>"+data1[i]+"</option>"; 
       } 

       $("#aqCellAboutQuestion select").html(optoins1); 
       $("#aqCellAboutQuestion select").val(cell); 
      }); 

      $.getJSON(
      "http://localhost/Mar7ba/Place/givePlacesInCell/"+cell+"/TRUE", 
      function(data2){ 

       var options2 =''; 
       options2+="<option>Select Place</option>"; 
       for(var i = 0 ; i < data.length;i++){ 
       options2+="<option value='"+data2[i]+"'>"+data2[i]+"</option>"; 
       } 
       $("#aqPlaceAboutQuestion select").html(options2); 
       $("#aqPlaceAboutQuestion select").val(place); 
      }); 
     } 
     } 
    } 
}); 

會你幫助我,告訴我我做錯了什麼?

+0

你在哪裏加載你的jQuery? – Hirvesh

+0

來自數據庫,mysql數據庫 – Totti

+0

你必須更好地解釋你的問題......很難從「我必須刷新頁面4或5次才能獲得_good_結果」 –

回答

0

的問題是,因爲可能你正在使用

$(document).ready() 

,但你必須使用:

$(windows).load() 
+0

我會嘗試它, – Totti

+0

是totti,它的工作原理,真的很感謝你,你的暱稱像我的:) :) :) ,真的很感謝你幫助 – Totti

+1

很高興我能幫上忙 –