ajax möchte nicht

bombbass

Grünschnabel
hallo

habe eine dropdownliste, möchte eine Tabelle ausgeben, sobald ich etwas in der liste auserwählt habe...
HTML/PHP:

HTML:
<form name="a" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <select name="Liste" size="1" onchange="sendRequestBeruf(this)"> <option>Liste1</option><option>Liste2</option><option>Liste3</option>
</select>
<table id="tabelle" border="1">
</table>
</form>

JS:

HTML:
var xhr;

function http(){ 

    var http;  

    if(window.XMLHttpRequest){

        http = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
            http = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else
            alert('Kein AJAX');
    return http;

}


function sendRequestBeruf(f){
    xhr = http();
    xhr.open("GET","berufinfo.php?name=" + escape(document.forms['a'].Beruf.value), true);
    xhr.onreadystatechange = output;
    xhr.send( null );
}

function output(){

    if( 4 == xhr.readyState  ){
         var trt = document.createElement("tr"); 
         var tdt1 = document.createElement("td"); 

         var text = document.createTextNode("Test");
         tdt1.appendChild(text);
         trt.appendChild(td1);
         tabelle.appendChild(trt);


    }
}
Warum zeigt er keine Tabelle an?

Danke und Gruß

bombbass
 
Da sind erstmal 2 Fehler:
Code:
xhr.open("GET","berufinfo.php?name=" + escape(document.forms['a'].Beruf.value), true);
//Die Liste hat den Namen "Liste" und nicht "Beruf"

trt.appendChild(td1);
//Das erzeugte Objekt heisst "tdt1" und nicht "td1"

...Beim IE gibt es dann noch ein weiteres Problem.... dort musst du die TR-Objekte in den <tbody> der Tabelle einhängen...auch wenn du dieses nicht im Code stehen hat, ist es für den IE existent.

Alternativ kannst du auch die Methoden insertRow()/insertCell() verwenden...da funktioniert es in allen Browsern identisch.
 

Neue Beiträge

Zurück