hab mit AJAX, was gebastelt, was aber nicht tut,
also, ich habs 3 mal, etwa gleich, 2 mal tut’ das 3. mal nicht…
JS...
var name = document.getElementById('name').value;
var pass = document.getElementById('pass').value;
...
HTML
<form...>
...
<input type="text" id="name">
...
<input type="text" id="pass">
i-wie hab ich da keine ahnung, wieso es net tut…
hoffe ihr hattet sowas schon mal und könnt mir helfen
mfg Joey
Was hat denn dein (rudimentaerer) Beispielcode mit AJAX zu tun?
Wenn du Formularelemente erst dynamisch zur Laufzeit erzeugst, macht der IE dabei unter verschiedenen Bedingungen Probleme, insb. was die “Erkennbarkeit” am name-Attribut angeht. Hast du das ganze mal in anderen Browsern getestet, machen die auch Probleme? (Und wenn ja, was sagen deren Fehlerkonsolen; was sagt der/ein DOM Inspector zur Dokumentstruktur, sieht die wie gewuenscht aus?)
P.S.: Dass du versuchst, auf die Elemente zuzugreifen, bevor sie ueberhaupt existieren, waere zwar auch ein beliebter Anfaenger-Fehler - aber den koennen wir wohl hoffentlich ausschliessen, wenn du schon mit AJAX herumexperimentierst.
ähh… ja, der zugriff ist in ne funktion eingebaut, die nur dadurch aufgerufen werden kann, wenn man auf den button unter den inputs klickt
ja, das hat jetzt nicht viel mit ajax zu tun, aber da sehe ich eben die ganze funktion als ajax an…
die elemente sind von anfang an da, nur versteckt, was aber auf javascript keinen einfluss haben dürfte…
die FF fehler konsole sagt eben das, was ich oben geschrieben hab, aber im ie hab ich erst recht nicht ausprobiert, 1. weil ich glaub eh noch ie6 (oder gar 5) habe, und im ff alles ‘schneller’ läuft…
Nun ja: ich habe mal auf die Schnelle das hier gebastelt (ist natürlich nicht valide, sondern nur ein Test):[code]
TestForm
[/code]
Das funktioniert definitiv.
Ursprünglich dachte ich, dass es einen Unterschied zwischen einfachen (') und doppelten (") Anführungszeichen geben könnte - dem ist nicht so.
Der Fehler muss bei Dir woanders liegen - in den meisten Fällen wird versucht, auf ein Element zuzugreifen, das noch nicht existiert.
Wäre in dem obigen Beispiel die Ausgabe _nicht_ in eine Funktion gekapselt, würde es zu diesem Fehler kommen.
nunja, dann werd ich mal suchen…
(versuchen)
…
mfg Joey
Edit:
der aufbau ist bei mir eben i-wie so:[code]…
hier die funktionen
dann kommt eben noch ein bisschen stylesheet, den ich sowieso mal rausnehemn werde...
dann hier die elemente
erst beim klick auf diesen button wird die funktion aufgerufen...
...[/code]
das wollt’ ich eigentlich dann machen, wenns dann funktioniert…
habs nun schon gemacht, aber tut immer noch net
…
werd dann mal noch dran rumscripten, aber wenn einer von euch noch mehr weiss; her damit
aja, sorry, dein post hatt ich voll übersehen… das ist ein Link (hoff ich)
ja, das design ist noch nix, aber auch nur weil die grafiken fehlen
und die links sin auch nix, da ich die betr dateien noch nicht hochgeladen hab
mfg Joey
edit/ sorry: ihr müsst auf Mitgliederbereich klicken
edit2/ und i-was eingeben und auf Login klicken dann bleibt er bei “verarbeite daten” hängen
D’oh! Wenn du den Inhalt des Divs #login, der das Formular enthaelt, beim Klicken auf den Login-Button erst mal per .innerHTML="…" austauschst, so dass das Formular anschliessend futsch ist - dann brauchst du dich eigentlich nicht allzu stark wundern, dass anschliessend der Zugriff auf die Formularelemente auch nicht mehr funktioniert - oder …?
Mir sind da (nur auf die Schnelle) auch noch ein paar Dinge aufgefallen:
Hier muss ein Leerzeichen mehr rein (zwischen onclick und value). Außerdem gibt es kein „onClick“ sondern nur „onclick“ - das bringt den einen oder anderen Browser schon mal aus dem Tritt.
2. [quote]document.getElementById(„unam“) has no properties vpu.bplaced.net/test/
Line 39[/quote]
Das spuckt mir firebug aus - ein sehr, sehr nützliches Firefox-AddOn für Webdesigner. Mit diesem tool kannst Du Dir Bestandteile der Seite genauer ansehen - dann fällt auch auf, dass das Formular nach dem Klick nicht mehr da ist…
Im Übrigen würde ich ein Login niemals mit JavaScript / Ajax lösen… das ist eine klassische PHP-Aufgabe (schon aus Sicherheitsgründen).
Ich verstehe, was Du da vorhast - nur würde ich dieses Problem anders lösen.
Die „dynamische“ Anzeige per CSS („visibility:hidden | visible“) ist ok, das verarbeiten der Daten sollte „ganz normal“ mit der Absenden-Funktion des Formulares gelöst werden.
Die Anzeige „Daten werden verarbeitet“ muss in ein zusätzliches DIV (Grund: siehe voriger Post) und/oder wird von der PHP-Funktion erzeugt bzw. angezeigt.