2016-04-07 4 views
0

Ich habe eine PHP-Seite, die eine JavaScript-Funktion aufruft, um sie zu füllen. Die Seite ist eine Liste von Benutzern mit jeweils einem eigenen Formular, die Formular-ID hat die ID an ihren Namen angehängt, um Bearbeiten, Löschen usw. für jeden Benutzer zu ermöglichen. Die Form ist die Form einer HTML-Seite, die theoretisch für jeden Datensatz eingesaugt wird. Ich benutze jquery each(), um über die Datensätze zu iterieren, dann sollte theoretisch die HTML-Seite eingesaugt und für jeden Datensatz gefüllt werden. Ich habe auch für die Schleife versucht. Der folgende Code erzeugt die richtige Anzahl von Formularen, aber leer. Andere Bemühungen haben mich nur mit dem letzten Datensatz verlassen, der die erste Box bevölkert und die anderen leer. Jede Hilfe sehr geschätzt.Wie Elementwerte innerhalb der Funktion jquery.each() zugewiesen werden

$(Udata).each(function(uId, value){ 
    uid = value.uid; 
    var uname = value.uname; 
    function setValues() { 
     window.document.getElementById("username").value=uname; 
     window.document.getElementById("frmDelUsr").setAttribute("name","frmDelUsr"+uid); 
    } 

    $.get("users.html",{}, function (data) {        
    $("#divfrmDelUser").append(data), function(){setValues();} 

}); 
+1

jQuery findet nur das erste Feld mit der ID in Ihrem Dom. Es wird angenommen, dass die ID eindeutig ist. Benutze Klassen und siehe tell separiere sie per parrent – Filip

Antwort

0
$(Udata).each(function(uId, value){ 
    uid = value.uid; 
    var uname = value.uname; 
    function setValues() { 
     window.document.getElementById("username").value=uname; 
     window.document.getElementById("frmDelUsr").setAttribute("name","frmDelUsr"+uid); 
    } 

    $.get("users.html",{}, function (data) {        
    $(this).children('.divfrmDelUser').append(data), function(){setValues();} //<--- CHANGED 

}); 

Zuerst müßten Sie das Element mit der ID „divfrmDelUser“ durch diese ID in eine Klasse machen ändern (nur „id“ löschen und geben Sie „Klasse“ natürlich), dann, was das soll Zu tun ist, das aktuelle Udata zu wählen, und dann nach den Elementen darin zu suchen, die die Klasse "divfrmDelUser" enthalten, und tun, was Sie hinterher tun.

+0

Danke für schnelle Antwort, habe ich jetzt aber vergebens. Ich möchte den Wert lieber als innerHTML verwenden, wenn Benutzer löscht oder bearbeitet – philm127

+0

Ah ja, ich habe völlig vergessen, was @Filip sagte ist etwas, was ich nicht beachtet habe (war beschäftigt, wenn das Schreiben), aber das ist, warum es nur füllt das erste auf. Ich schätze, ich könnte hier ein Beispiel für dich machen, wenn du es noch nicht herausgefunden hast. – user326964

+0

Ich habe was Filip gemeint und habe mich dementsprechend angepasst. Ich habe meinen Code und meine ID geändert, wie Sie vorgeschlagen haben, aber es löst nicht die Funktion setValues ​​() aus. – philm127

Verwandte Themen