1

我想制作一个编辑页面,当用户访问一个问题(我有一个问题网站)时,他将可以选择编辑该问题,当用户单击编辑问题时,我想获取有关该问题的所有信息来自数据库的问题并将其放入编辑页面,我这样做了,它适用于所有信息,但我有一个问题,它是:

在我的编辑页面上,我有许多下拉列表,每个下拉列表都使用 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);
          });
        }
      }
    }
});

你能帮助我并告诉我我做错了什么吗?

4

1 回答 1

0

问题是因为您可能正在使用

$(document).ready()

但你必须使用:

$(windows).load()
于 2012-05-26T20:31:47.010 回答