이 작업을 수행하는 데 어려움이 있습니다. 크롬 자바 스크립트 콘솔을 사용하여, 나는 내 기능이 발사되고 나는 그렇지 않은 결과를 얻는 것을 볼 수있다. 단지 다중 선택을 채우지 않을 것이다.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 배열 부호화 결과의 예이다.
: 여기 http://jsfiddle.net/tymeJV/8eUFe/
바이올린이 문제를 시연 것 : 여기
은 JSON을 통해 루핑이 데모의이 바이올린의 JSON을 통해 'select'에 대한 옵션을 생성합니다. – tymeJV'field [one]'예를 들어'$ ("select [name = 'field [one]']"와 같이 jquery의 selector와 충돌 할 때 요소에 대해이 유형의 이름을 사용하는 것을 피하십시오. 변경 (function()'. – dreamweiver
이것들은 실제 이름이 아닙니다 ..이 예제에서 바뀌 었습니다 .. – Patrick