2013-05-30 14 views
5

Wie in der Dropdown-Liste Element durch den Benutzer ausgewählt?jquery Select2 Ajax - Wie setzen Wert (initSelection)

Szenario:
1. Benutzer nicht geben Sie alle erforderlichen Werte in Form
2. Klicken Sie gesendet.
3. Die Seite wird aktualisiert und der Wert in der Dropdown-Liste ist nicht ausgewählt. Wie wählen Sie den Wert?

Ich habe funktionierende Skript, die Daten für die Liste abrufen.

$('#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; 
} 
}); 

Standarddaten in Ajax-Aufruf: { "text": "Probetext", "id": "1"}

Input:

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

ich versuchte, die folgenden hinzuzufügen Code, aber es funktioniert nicht

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

Antwort

0

Vergewissern Sie sich, dass Sie ein korrekt formatierte JSON-Objekt in Ihrem Anruf in initSelection wieder zurückgegeben werden. Die Diskussion dazu wurde bereits adressiert here.

Aber bis jetzt sieht gut aus. Sie können das Ereignis bind the change des Ereignisses select oder submit des Formulars verwenden, um den Wert serialisieren zu lassen, bevor das Formular gesendet wird.

Sie können ihren Wert auf Ihrem Server speichern (yucky) oder einfach das Formularobjekt serialisieren und den Wert erhalten, der an initSelection übergeben wird, wenn select2 geladen wird.

das, was hier passiert, ist:

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

Hier ist ein einfaches example Ihre Form von Serialisierung.

PS: Ich verstehe nicht, was Bootstrap mit irgendetwas zu tun hat.

Verwandte Themen