2013-05-16 4 views
0

이 작업을 수행하는 데 어려움이 있습니다. 크롬 자바 스크립트 콘솔을 사용하여, 나는 내 기능이 발사되고 나는 그렇지 않은 결과를 얻는 것을 볼 수있다. 단지 다중 선택을 채우지 않을 것이다.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 인코딩 된 배열입니다 ... 내 생각 엔 여기 코드는 문제는 ... 다중 선택에서 해당 정보를 올바르게 해석하도록하는 것입니다. 현재 호출이 이루어지고 데이터가 검색된 후에는 아무 일도 발생하지 않습니다. 미리

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

감사 : 여기서

크롬 디버거에 도시 JSON 배열 부호화 결과의 예이다.

+1

: 여기 http://jsfiddle.net/tymeJV/8eUFe/

바이올린이 문제를 시연 것 : 여기

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

은 JSON을 통해 루핑이 데모의이 바이올린의 JSON을 통해 'select'에 대한 옵션을 생성합니다. – tymeJV

+0

'field [one]'예를 들어'$ ("select [name = 'field [one]']"와 같이 jquery의 selector와 충돌 할 때 요소에 대해이 유형의 이름을 사용하는 것을 피하십시오. 변경 (function()'. – dreamweiver

+0

이것들은 실제 이름이 아닙니다 ..이 예제에서 바뀌 었습니다 .. – Patrick

답변

0

이 작업을 수행 할 수 있습니다 : 당신은 반복해야 할거야 http://jsfiddle.net/tymeJV/8eUFe/1/

+0

아주 가깝습니다. 이것은 다중 select에서 모든 정보를 얻었지만 모두 수직입니다 - 한 줄에 한 문자. 여러 이유 때문에 다음과 같은 문자가 {}와 함께 모든 문자와 함께 포함됩니다. 그리고 : – Patrick

+0

정확한 JSON 데이터를 사용하고 피들에서 작업하고 있습니다 ... – tymeJV

+0

... 알아요. 네, Fiddle은 완벽하게 작동합니다 (감사합니다). 콘솔에있는 JSON 데이터가 데이터가 함수에 전달되는 형식이 아닌지 궁금합니다. – Patrick

관련 문제