Ergebnis 1 bis 3 von 3

Thema: Kann div-Tag mit load()-Aufruf nicht verändern

  1. #1
    Neuer Benutzer
    Registriert seit
    16.01.2018
    Beiträge
    2

    Kann div-Tag mit load()-Aufruf nicht verändern

    Hallo liebe jquery-Programmierer,

    ich habe ein Kleines Problem.

    Ich habe ein leeren DIV-Container.
    HTML-Code:
    <div class="form-group" id="UserDiv">
    						
    </div>
    In diesen DIV-Container mit der id="UserDiv" soll ein Select-Tag mit einigen Usern geladen werden, die durch ein PHP-Script aus einer Datenbank geladen werden.
    Dies ist die entsprechende jquery-Funktion:
    Code:
    function loadDiv(){
    	
    	$("#UserDiv").load("../includes/UserProwalus.inc.php", function(response, status, xhr) {
    		
    		if(status=="success"){
    			alert(response);
    			$("#UserDiv").html(response);
    			
    		}
    		
    	});	
    }
    Das PHP-Script sieht wie folgt aus:
    Code:
    $content="";
    $content.="<select class='selectpicker show-tick show-menu-arrow' id='UserBlock' name='UserBlock' data-width='75%' data-size='8' title='PrOWaLuS+ - User'>";
    $content.="<option value='15|31'>Mr Green</option>";
    $content.="</select>";
    echo $content;
    Die eigentliche Datenbankabfrage der User funktioniert super. Die im $content gespeicherte Antwort ist nur zu Testzwecken angelegt.

    Das Problme ist, dass das Script absolut gut funktioniert. Das korrekte Resultat wird im alert-Fenster angezeigt, aber der div-Tag erfährt keine Befüllung.
    Wenn ich den Befehl $("#UserDiv").html("Hallo Test"); ausführe, funktioniert dies auch und der DIV wird befüllt. Und das macht mich völlig fertig, da ich eigentlich nichts falsch gemacht haben kann.

    Doch irgendetwas passt nicht.

    Ich hoffe, dass Ihr mir helfen könnt.

    Vielen Dank schon mal im Voraus.

  2. #2
    Moderator
    Registriert seit
    04.05.2012
    Beiträge
    2.693
    Hast du dir mal den Server Request angeschaut was der Server als Response schickt? Klingt für mich so als wenn der Code nicht valide ist und er ihn nicht interpretiert. Sprich das HTML in der PHP Datei ist invalide oder es gibt sogar einen Server error.
    Geändert von s4ty (17.01.2018 um 13:44 Uhr)
    Pakete werden jetzt mit $_DHL geliefert... nicht mehr mit $_POST

  3. #3
    Neuer Benutzer
    Registriert seit
    16.01.2018
    Beiträge
    2
    Hallo s4ty,

    du hattest absolut recht. Die Response ist absolut valide, aber nicht der Inhalt. Ich benutze bootstrap und das Problem besteht im classen-Selector mit class="selectpicker show-tick show-menu-arrow".
    Entferne ich die Klassendefinition im Select-Tag, funktioniert alles tadellos. Problem. Es sieht halt jetzt sehr bescheiden aus. Was kann ich tun, damit der class-Selektor auch funktioniert?

    Binde ich den Select-Tag mit einer Probe-Option direkt ein, funktioniert alles ohne Probleme und sieht auch wie gewollt aus.

    Sobald ich den class-Selektor entferne, kann ich ebenfalls alle User über das PHP-Script laden.
    Ich habe den div-Tag mit id="User" entfernt und füge mit $("#UserBlock").append(response); den Response des PHP-Scripts direkt in das Select ein.

    Nun musste ich ein wenig in diversen Foren suchen und habe die Lösung gefunden.
    Folgendes Zitat hat mich weitergebracht: "Das Hinzufügen einer neuen Auswahl mit "ClassName" wird nicht mit der "Bibliothek" gerendert. Ein Refresh ist notwendig".

    Lösung:
    HTML-Code:
    <select class="selectpicker show-tick show-menu-arrow" id="UserBlock" name="UserBlock" title="PrOWaLuS+ - User" data-width="75%" data-size="8">
    					
    </select>
    Code:
    function loadSelect(){
    	$("#UserBlock").load("../includes/UserProwalus.inc.php", function(response, status, xhr) {
    		
    		if(status=="success"){
    			$("#UserBlock").append(response);
    			$('#UserBlock').selectpicker('refresh');
    			$('#UserBlock').show-tick('refresh');
    			$('#UserBlock').show-menu-arrow('refresh');			
    		}
    		
    	});	
    }
    Danke nochmal für deinen Tipp.
    Ich hoffe, dass die Lösung auch anderen weiterhelfen wird.

Stichworte

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •