2013-05-30 1 views
5

사용자가 선택한 드롭 다운 목록 항목의 설정 방법은 무엇입니까?jquery Select2 Ajax - 설정 값 (initSelection)

시나리오 :
1. 사용자는 형태로
2.를 보낸 모든 필요한 값을 입력하지.
3. 페이지가 새로 고침되고 드롭 다운 목록의 값이 선택되지 않습니다. 값을 선택하는 방법은 무엇입니까?

목록의 데이터를 검색하는 작업 스크립트가 있습니다. 아약스 호출

$('#userid').select2({ 
placeholder : " --- select ---", 
minimumInputLength: 2, 
ajax: { 
    url: "index.php?modul=getusers", 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    data: function (term, page) { 
     return { 
      q: term, 
      page_limit: 10 
     }; 
    }, 
    results: function (data, page) { 
     return { results: data }; 
    } 
}, 
allowClear: true, 
formatSelection: function(data) { 
    return data.text; 
} 
}); 

표준 데이터 : { "텍스트": "샘플 텍스트", "ID": "1"}

입력 :

 <input type="text" value="<? echo $_POST['userid']; ?>" class="input" id="userid" name="userid">

나는 다음을 추가하려 코드,하지만

initSelection: function(element, callback) { 
    var id=$(element).val(); 
    if (id!=="") { 
     $.ajax("index.php?modul=getusersfriend&q="+id, { 
     dataType: "json" 
     }).done(function(data) { callback(data); }); 
    } 
}, 

답변

0

당신이 올바른 형식의 JSON 개체가 다시 initSelection의 통화에서 반환되는했는지 확인 작동하지 않습니다. 그것에 대한 토론은 이미 here으로 처리되었습니다.

그러나 지금까지는 좋았습니다. 양식을 제출하기 전에 값을 직렬화하기 위해 양식의 선택 또는 제출 이벤트 bind the change 이벤트를 원할 수 있습니다.

서버에 값을 저장하거나 (yucky) 사용자 정의 폼 객체를 직렬화하고 select2가로드 될 때 initSelection에 전달할 값을 가져올 수 있습니다. 여기에 무슨 일이 일어날 지입니다

: 여기

var id=$(element).val(); 

이 양식을 직렬화하는 간단한 example입니다.

PS : 부트 스트랩이 어떤 작업과 관련이 있는지 실제로 확인하지 마십시오.