2012-04-05 101 views
1

我有一个下拉列表,它是在页面加载时使用ajax动态生成的。 另一方面,我有一个PHP变量,其中包含默认选择的值。 但是,当Iam尝试这样做时,它并未选择该值。以下是代码:如何使用jquery设置动态下拉选择的值?

HTML & PHP

<h1>Venue: Edit</h1> 
<a href="/venue"><< Back to Venue List</a> 
<br /> 
<form method="post" id="venueEdit" action="<?php echo URL;?>venue/editSave/<?php echo $this->venue['id']; ?>"> 
    <fieldset> 
      <p> 
       <label for="cvenue" class="main">Venue</label> 
       <input id="cvenue" class="required" type="text" name="venue" value="<?php echo $this->venue['name']; ?>" /> 
      </p> 
      <p> 
       <label for="ccity" class="main">City</label> 
       <input id="ccity" class="required" type="text" name="city" value="<?php echo $this->venue['city']; ?>" /> 
      </p> 
      <p> 
       <label for="ccountry" class="main">Country</label> 
        <select id="ccountry" class="required" name="country"> 
         <option value="">-- Select Country --</option> 
        </select> 

      </p> 
      <p> 
       <label class="main">&nbsp;</label><input type="submit" value="Save" /> 
      </p> 
     </fieldset> 
</form> 

JS:

function populateCountryDropDown(url){ 
    $.get(url, function(o) { 
     for(var i = 0; i < o.length; i++){ 
      $('select[name="country"]').append('<option value="' + o[i].id + '">' + o[i].name + "</option>"); 
     } 
    }, 'json'); 
} 

$(document).ready(function(){ 
     populateCountryDropDown('<?php echo URL; ?>' + 'country/xhrGetCountryList'); 
     $('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>'); 
     $("#venueEdit").validate(); 
    }); 

我试图提醒PHP的价值和它的确定,但如果我提醒选择选项的值,它总是空如那点它仍然填充下拉列表。我不知道如何解决这个问题。希望你们的帮助?谢谢。

回答

2

您需要将您的代码设置为回调值,才能触发设置的值之后发送的AJAX呼叫由$.get()返回。

function populateCountryDropDown(url){ 
    $.get(url, function(o) { 
     for(var i = 0; i < o.length; i++){ 
      $('select[name="country"]').append('<option value="' + o[i].id + '">' + o[i].name + "</option>"); 
     } 
     $('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>'); 
     $("#venueEdit").validate(); 
    }, 'json'); 
} 

$(document).ready(function(){ 
     populateCountryDropDown('<?php echo URL; ?>' + 'country/xhrGetCountryList'); 
}); 
+0

感谢的人这个工作。 – 2012-04-05 06:06:44

-2

这这里代码:

$('select[name="country"]').val('<?php echo $this->venue['countryid']; ?>'); 

尝试更改为:

$('select[name="country"]').val('<?php echo $this->venue["countryid"]; ?>'); // Double quotes around countryid vs the single quote. 
+1

双引号对单引号对于OP在PHP中所做的操作没有任何影响。 – Amber 2012-04-05 04:52:32

+0

^^。完全没有区别。 – 2012-04-05 06:03:30