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

Frage resOb is not defined - warum?...

Hallo,

ich finde gerade meinen Fehler nicht. Vielleicht kann mir jemand helfen:

Code:
function f_dropdown_id_eintragen(inputfeld) {
    inhalt = document.getElementById(inputfeld).value;
    mein_link="AJAX_REQUESTS.php?aktion=dropdown&inhalt="+inhalt;
    var resOb = erzXHRObjekt();
    resOb.open('get', mein_link, true)
    resOb.onreadystatechange = f_dropdown_id_eintragen_AJAX;
    resOb.send(null);
}

function f_dropdown_id_eintragen_AJAX() {
    if (resOb.readyState == 4) {  
        myText=resOb.responseText;
        alert(myText);
    }
}

PHP-Teil:
Code:
<?php
$aktion = $_GET["aktion"];

if ($aktion == "dropdown") {
// code.. code.. code...

echo "Antwort";
}

?>
Warum bekommen ich ständig den Fehler "Uncaught ReferenceError: resOb is not defined", der sich auf die Zeile
Code:
  if (resOb.readyState == 4) {
bezieht?...

Ich sehe keinen Unterschied zu anderen zwei Stellen in meiner Software, an welchen ich AJAX verwende und wo es funktioniert, wahrscheinlich aber bin ich nur gerade "blind"... Bin gespannt auf eure Beiträge!
 
Werbung:
Ich bin nun kein Javascript profi, aber das müsste daran liegen, weil du die variable in der funktion f_dropdown_id_eintragen erstellst mit var .....
Also kann sie in der funktion f_dropdown_id_eintragen_AJAX nicht bekannt sein. Ich glaube du musst die Variable außerhalb der funktion erstellen. Also
var resOb oder diese bei der zweiten funktion als parameter übergeben.

Denke es sollte daran liegen.
 
RICHTIG!!! In meinen anderen zwei Funktionen hatte ich resOb ohne var definiert! Es ist nicht notwendig resOb außerhalb der Funktion zu deklarieren, aber "var" scheint die Gültigkeit dieses Objekts auf die entsprechende Funktion einzuschränken - würde ich zumindest jetzt so interpretieren. Vielen Dank!!!
 
Werbung:
Wenn eine Variable mit "var" deklariert ist, ist ihre Gültigkeit auf den aktuellen Scope beschränkt. Wenn kein "var" steht, wird nach aussen hin nach einer Variable gesucht, die bereits diesen Namen hat, falls keine exisitiert, wird eine neue im Globalen Scope angelegt.

Dies ist Grundsätzlich zu vermeiden.
 
Zurück
Oben