2012-04-05 52 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