2017-08-26 3 views
1

Ich habe dieses Problem, das ich nicht beheben kann. Alles, was ich tue, funktioniert einfach nicht. Ich arbeite mit vielen Formen, also habe ich beschlossen, eine PHP-Datei für jedes Formular zu erstellen und dann das Formular mit Ajax laden.Select2 funktioniert nicht nach jquery laden

Js-Datei:

$('#firstForm').on('submit', function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url : "includes/firstform.inc.php", 
     type: "POST", 
     data: $(this).serialize(), 
     success: function (data) { 
     $('.content-container').load('forms/zipscreens-form.php'); 

     }, 
     error: function (jXHR, textStatus, errorThrown) { 

     } 
    }); 
}); 

HTML Container:

<div class="content-container"> 
// in this div the form will be stored. 
</div> 

Select Form:

<select class="js-example-basic-single" name="selectWidth"> 
    <?php 
    for ($row = 1; $row <= $lastRow; $row++) { 
    echo "<option value='AL'>"; echo $worksheet->getCell('A'.$row)->getValue(); echo "</option>'"; 
    } 
    ?> 
</select> 

Warum ist das nicht funktioniert?

+0

Kein Teil in Ihrem Code haben Sie Select2 initialisieren, und das ist der Grund? – Terry

+0

Können Sie mir bitte erklären, wie das geht? Ich bin sehr neu in jQuery. – itvba

+0

Lesen Sie die Dokumentation des Plugins zur Initialisierung: https://select2.github.io/examples.html – Terry

Antwort

1

Sie müssen select2() initialisieren. Sie können dies tun, nachdem der Ladeaufruf abgeschlossen wurde. Anstatt also:

$('.content-container').load('forms/zipscreens-form.php'); 

Verwenden ..

$(".content-container").load("forms/zipscreens-form.php", function() { 
    $(".js-example-basic-single").select2(); 
}); 
+0

Chris, du bist ein Genie! Das ist alles was ich wissen musste. Danke Chris, ich habe mir den ganzen Tag den Kopf gebrochen. – itvba

+1

Gerne helfen ;-) – Chris