2016-10-02 5 views
0

Ich muss Kontrollkästchen in einer HTML-Seite dynamisch anzeigen und ihren Wert aus der Datenbank abrufen.Chasing innerHTML von DIV ändert Tabelle Eigenschaften

Der Trick, den ich verwendet wird, ist die gesamte Tabelle HTML in Java zu erstellen und dann mit AJAX Ich mache das

var div = document.getElementByID("div").innerHTML = htmlCode; 

aber Problem ist

in Htmlcode Variable, die html wie

ist
<table width="100%"> 
    <tr> 
     <td width="50%">...... 

aber wenn ich div.innerHTML überprüfe, zeigt es wie

<TABLE width="100%"> 
<TBODY> 
    <TR> 
     <TD width="50%"> 
      <?xml:namespace prefix = .... 

Warum werden sie Großbuchstaben und warum wird das Präfix xml: namaesapce hinzugefügt?

Dies führt zu einem Problem, da die Tabelle nicht richtig angezeigt wird.

Gibt es einen anderen besseren Weg, dies zu tun, ohne innerHTML zu verwenden?

Der Code für die Erzeugung von Tabelle ist

String html = "<table width=\"100%\">"; 

for (Iterator it = lookupList.iterator(); it.hasNext();) 
    { 
     HashTree lookupElement = (HashTree) it.next(); 
     String code = lookupElement.getChildTagValue ("CODE"); 
     String text = lookupElement.getChildTagValue ("TEXT"); 

     String labelText = ""; 

      if(indexLookupElement == 0) 
       labelText = "First Checkbox label"; 

      html = html + "<tr><td width=\"50%\" >" + 
      + 
        "<input type=\"checkbox\" id=\"item" + code + "\" />" + 
        "<html:label " +  
         "id=\"_Description\"" + 
         "name=\"_Description\"" + 
         ">" + text + 
        "</html:label>" +      


      "<td width=\"50%\" >" + 
      "</td></tr>"; 

      indexLookupElement += 1; 
    } 

html = html + "</table>"; 

Danke,

Aiden

+1

Nimm es nicht als Antwort, aber 'document.getElementByID' ist falsch..es sollte' document.getElementById' sein (id = Kleinbuchstaben) und 'div.innerHTML' ist wahrscheinlich' undefiniert' .. du solltest mehr Code bereitstellen https://jsfiddle.net/uo2gjvxL/12/ – Merlin

+0

Bitte geben Sie den Teil des Codes, wo Sie HTML generieren –

+0

Ich mag einfach dies auf der Hauptseite .... Erstellen Sie ein div ..... dann Tabelle in Java-String und dann innerhalb dieser Tabelle dynamisch hinzufügen dann und dann Checkbox-Code. Ich wiederhole die und Checkboxen so oft wie es Kontrollkästchen in der Datenbank gibt, die dynamisch ist und – Aiden

Antwort

1

Es ist nicht eine bewährte Methode, die HTML-Code-Server-Seite zu erstellen. Wenn Sie sicher sind, dass Sie die Tabelle in Ihrem Dokument haben, ist es besser, sie zur Struktur des Dokuments zu machen und nur die Variablen aus Ihrem Java-Code zu füttern. Auch wenn die Tabelle konditional ist, können Sie sie mit einer Variablen ein-/ausblenden. Ich glaube, dass dieser Ansatz Ihr Problem lösen wird, wenn der HTML-Code Ihrer Webseite korrekt ist.

aktualisieren

-Test es wie folgt aus:

html = html + "<tr><td width=\"50%\"><input type=\"checkbox\" id=\"item" + code + "\" /><label id=\"_Description\" name=\"_Description\">" + text + "</label></td><td width=\"50%\"></td></tr>"; 

In Ihrem Code Sie haben fehlende schließenden Tag TD und ich einige Änderungen vorgenommen. Sehen Sie, ob dies Ihr Problem beheben wird.

+0

aktualisiert Problem ist, ich bekomme die Namen/Labels von Kontrollkästchen dynamisch in der Datenbank. Es kann jederzeit vom Benutzer geändert werden. Ich muss die Datenbank-Etiketten/Namen der Kontrollkästchen auswählen und sie dann anzeigen. Also, ihre Nummer ist nicht festgelegt. z.B. Buchname, Buchautor ..... etc Benutzer kann Buchautor aus einer Tabelle löschen und dann sollten wir nicht das Buch Autor Kontrollkästchen – Aiden

+0

erstellen Ich habe die Frage mit Code aktualisiert – Aiden