• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ajax möchte nicht

Status
Für weitere Antworten geschlossen.

bombbass

Neues Mitglied
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
 
wenn etwas nicht geht dann gibt es immer 2 möglichkeiten

1. Es wird nicht ausgeführt
2. Es gibt eine Fehlermeldung

Hast du mal im (IE) Debug Modus / (FF) Fehlerkonsole geschaut?
 
bei FF gehst auf Extras > Fehlerkonsole
Beim IE musst du auf Extras > Interneteinstellungen
da gibts dann iwo einstellungen wo du debug-modus an machen kannst
 
Entweder ich bin zu blöd oder ich bin zu blöd !!!
Hier nochmal der geänderte Code:
PHP:
<form name="a" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <select name="Beruf" size="1" onchange="sendRequestBeruf(this)"> <option>Liste1</option><option>Liste2</option><option>Liste3</option>
</select>
<table name="tabelle" border="1">
</table>
</form>

request.js:
PHP:
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  ){ // readystate --> wird status abgelegt

    rueckgabe = xhr.responseText;

         var tr = document.createElement("tr");
         var td = document.createElement("td");

         var text = document.createTextNode("Dies ist ein Text");

         td.appendChild(text);

         tr.appendChild(td);

         document.forms['a'].element['tabelle'].appendChild(tr);

    }

}

Auf der Error-Konsole folgender Fehler:
"document.forms.a.element has no properties"

und springt auf diese Zeile:
document.forms['a'].element['tabelle'].appendChild(tr);

Bitte Bitte hilft mir, ich werd noch verrückt!!!
 
Ajax, der Wirbelwind kommt noch ..

Entweder ich bin zu blöd oder ich bin zu blöd !!!
Hier nochmal der geänderte Code:
PHP:
<form name="a" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 <select name="Beruf" size="1" onchange="sendRequestBeruf(this)"> <option>Liste1</option><option>Liste2</option><option>Liste3</option>
</select>
<table name="tabelle" border="1">
</table>
</form>

request.js:
PHP:
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  ){ // readystate --> wird status abgelegt
 
    rueckgabe = xhr.responseText;
 
         var tr = document.createElement("tr");
         var td = document.createElement("td");
 
         var text = document.createTextNode("Dies ist ein Text");
 
         td.appendChild(text);
 
         tr.appendChild(td);
 
         document.forms['a'].element['tabelle'].appendChild(tr);
 
    }
 
}

Auf der Error-Konsole folgender Fehler:
"document.forms.a.element has no properties"

und springt auf diese Zeile:
document.forms['a'].element['tabelle'].appendChild(tr);

Bitte Bitte hilft mir, ich werd noch verrückt!!!





Hallo,

die Fehlermeldung sagt dir, dass das Element (noch) nicht existiert.
Spingen tut da nichts, auch der Ajax nicht. Das ist der Code wo der Fehler
auftritt.

Prüfe, wann du das referenzierte Element anlegst. Bevor du (s)eine Methode aufrufst muss es existieren.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben