2013-05-16 63 views
0

難以得到這個工作。使用Chrome瀏覽器的JavaScript控制檯,我可以看到我的功能正在觸發並獲得我需要的結果,它不會填充多個選擇。下面的代碼:jQuery ajax調用不填充多個選擇

的jQuery:

$("select[name='field[one]']").change(function() 
     { 
      var optionValue = $("select[name='field[one]']").val(); 
      $.get 
      ('/directory/location/getData', {select:optionValue}, 
       function(data) 
       { 
        $("select[name='subjects']").val(data); 
       } 
      ); 
     } 
    ); 

HTML:

<select name="field[one]" id="field_one"> 
    <option value="" selected="selected"></option> 
    <option value="2011">2011</option> 
</select> 

<select multiple id="show_results" name="subjects" /> 
</select> 

AJAX PHP召喚:

public function executeGetData(sfWebRequest $request){ 
    $year = $request->getParameterHolder()->get('select'); 
    $specialties = Doctrine_Core::getTable('Specialty')->getSpecialtyArray(); 
    $array = array(); 
    foreach($specialties as $specialty){ 
     $array[$specialty['id']] = ''; 
     $count = Doctrine_Core::getTable('HistoricalSalaries')->getCountPerSpec($year, $specialty['id']); 
     $array[$specialty['id']] .= $specialty['name']." Count($count)"; 
    } 
    return $this->renderText(json_encode($array));  
    } 

結果是JSON編碼陣列......我認爲是問題...得到多選擇解釋正確的信息。呼叫完成並檢索數據後,目前沒有任何反應。

以下是在鉻調試所示的JSON編碼陣列結果的一個示例:

{ 
2: "Aerospace Medicine Count(50)", 
3: "Abdominal Radiology (DR) Count(65)", 
4: "Addiction Psychiatry (P) Count(46)", 
5: "Adolescent Medicine (PD) Count(23)" 
} 

預先感謝。

+1

你將不得不遍歷通過該'數據'JSON併爲選擇創建選項。 – tymeJV

+0

'field [one]''你必須避免使用這種類型的名稱作爲你的元素,因爲它與jquery中的選擇器衝突,例如在這行'$(「select [name ='field [one]']」)。改變(function()'。 – dreamweiver

+0

這些不是實際的名字...在這個例子中改變了。 – Patrick

回答

0

你可以這樣做:

function(data) { 
    $.each(data, function(index, itemData) { 
     var newOption = "<option value='" + index + "'>" + itemData + "</option"; 
     $("#show_results").append(newOption); 
    }); 
} 

這裏有一個小提琴是演示的循環在JSON:http://jsfiddle.net/tymeJV/8eUFe/

這裏有一個小提琴demoing您的問題:http://jsfiddle.net/tymeJV/8eUFe/1/

+0

非常接近。它獲得多重選擇中的所有信息,但它全部是垂直的 - 每行一個字符。多重選擇非常長由於某種原因,以下字符包括每個「和: – Patrick

+0

沒有看到...如何使用您的確切JSON數據,它在小提琴中工作? – tymeJV

+0

...我知道。很明顯,你的小提琴完美無缺地工作(謝謝)。想知道我在控制檯看到的JSON數據不是數據交給函數的格式嗎? – Patrick