Web-Technik: ASP, PHP, XML, Javascript, AJAX, SQL Datenbanken. Webentwicklung: CMS, Foren, Blog -Scripte. |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
Web-Technik: ASP, PHP, XML, Javascript, AJAX, SQL Datenbanken. Webentwicklung: CMS, Foren, Blog -Scripte. |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
[Ajax] - onreadystatechange wechseln? |
|
|
# 1 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2006
Beiträge: 242
Power: 18
|
Hallo!
Vorweg, ich habe wenig bis keine Ahnung von Javascript/AJAX, meine Stärken liegen in anderen Bereichen. Aber ich habe schon Google und die Forensuche bemüht und keine Antwort auf mein Problem gefunden. Ich habe ein Skript mit PHP geschrieben, die verschiedene Seiten auswertet. Damit das ganze etwas dynamischer ist, habe ich mir diese paar Zeilen AJAX geschnappt, damit man sieht ob die Seite noch lädt und man auch schon vorher Ergebnisse sieht. Soweit funktioniert der Code auch... Auf der Php-Seite gibts ein Suchfenster, das entsprechend loadContent() aufruft: Das ist der eigentliche AJAX-Teil, der auch arbeitet: Jetzt habe ich analog dazu folgendes eingefügt: Der Ablauf auf der Seite ist jetzt folgender: Zuerst wird die erste Anfrage erzeugt, in deren Rückgabe wird dann das zweite Suchfeld erzeugt (analog zum ersten und entsprechend angepasst mit VGC-id-div und vgch-Textfeld). Im inneren Suchfeld soll man jetzt den Inhalt des VGC-divs verändern um das Suchwort für bestimmte Unterseiten zu ändern, genau wie vorher. Das eigentliche Problem ist jetzt, dass nur der Ladebalken kommt. Beim Testen habe ich herausgefunden, dass auch, wenn im zweiten Suchfeld HTML-Code:
|
|
|
|
|
# 2 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.168
Power: 52
|
Code:
|
|
|
AW: onreadystatechange wechseln? |
|
|
# 3 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2006
Beiträge: 242
Power: 18
Themenstarter |
aha okay, also völlig anderer ansatz. ich kanns leider noch nicht wieder testen und weiss auch noch nicht ob ich die beziehungen untereinander auf die schnelle verstanden habe... aber warum geht mein ansatz nicht? was ist das problem? will ja auch was dazu lernen.
EDIT: okay, also statt loadContent nutze ich jetzt function request(url, fn) so wie ich das verstehe, aber was ist fn? ich nehme ja nicht an, dass ich in den onSubmit-Teil reinschreiben muss : Code:
Geändert von Skull & Bones (02.05.2012 um 21:29 Uhr). |
|
|
AW: onreadystatechange wechseln? |
|
|
# 4 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.168
Power: 52
|
ok, scheinbar hast du nicht ganz verstanden was genau im code passiert - sorry, ich hätte das gnaze vielleicht ein wenig offensichtlicher gestalten sollen ... das hat man nun davon wenn man einfach zuviel mit javascript arbeitet, denn dann stellt sich dein hirn auf die ganzen wtf's ein und, ja man glaubt es kaum, die ganzen sachen ergeben perfekt sinn
![]() hier nun eine kommentierte version des codes: Code:
![]() ps: kopier den code in deinen editor mit syntax-highlight, dann liest es sich angenehmer. links: http://ejohn.org/blog/partial-functions-in-javascript/ nochmal wegen curry: Code:
Geändert von Murdoc (03.05.2012 um 11:06 Uhr). |
|
|
AW: onreadystatechange wechseln? |
|
|
# 5 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2006
Beiträge: 242
Power: 18
Themenstarter |
irgendwie ist das alles etwas frustrierend.
ich hab mir jetzt mal 2 tuts und einführungen zu currying durchgelesen, jetzt verstehe ich zumindest den sinn dahinter. allerdings sehe ich trotz deiner kommentare einfach nicht das grosse ganze im code, gerade auch weil das so verschachtelt ist. z.b. sehe ich nicht, wozu ich mehr als 1 oder im zweifelsfall 2 argumente zusätzlich übergeben sollte. wozu brauche ich hier überhaupt currying? was habe ich hier von einer partiell ausgewerteten funktion? im prinzip will ich nur sagen "nimm den wert aus id xy, häng ihn an die url (z.B. abc.php?a=b) und gib die antwort im entsprechenden div aus". Ich habe keine ahnung woher ich ne funktion fn bekomme (oder wozu ich die brauche), wie ich von aussen an das xmlhttprequest komme und wie ich das ganze jetzt überhaupt im onSubmit-teil eines <form>-felds nutzen soll. ausser curry sehe ich keine funktion, die nur ein element im aufruf braucht, curry selbst wird aber erst in request aufgerufen und darin ist auch das xmlhttprequest enthalten, allerdings brauche ich dafür schon eine funktion als parameter. weniger relevant, aber doch fürs verständnis wichtiger: läuft das ganze dann über mehrere instanzen von xmlhttprequests oder immer nur über das eine, das im onreadystate angepasst wird? TL;DR HÄÄ? geht das ganze nicht zur not auch einfach ohne currying? das scheint mir komplizierter als nötig, oder ist das echt der einzige weg? es muss nicht elegant sein, nur funktional. als funktional hätte ich meine lösung gesehen, aber wie gesagt, irgendwie will die nicht. (kennst du den grund ...?) |
|
|
AW: onreadystatechange wechseln? |
|
|
# 6 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.168
Power: 52
|
mmn. ist currying ein sehr wichtiger bestandteil, vorallem bei der verwendung von callbacks.
klar gehts ohne, aber warum sollte man das tun? ![]() mit meinem beispiel hast du nun eine simple funktion für deine ajax-anfrage mit callback-parameter ohne globale abhänigkeiten. Code:
|
|
|
AW: onreadystatechange wechseln? |
|
|
# 7 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2006
Beiträge: 242
Power: 18
Themenstarter |
soweit sieht es ja aus wie mein code der nicht funktioniert (nur durch currying doppelt so lang), wenn ich eine zweite handleContent-funktion nutzen will. du gehst der frage, warum das bei mir nicht so einfach geht ja anscheinend aus dem weg... natürlich bist du nicht mein persönlicher debugger, aber falls du es weisst, wäre es nett wenn du es mir sagen würdest.
habe jetzt sogar noch einen (für mich) recht eigenartigen bug gefunden: wenn ich xmlHttpObject.onreadystatechange = handleContent(); statt xmlHttpObject.onreadystatechange = handleContent; benutze, dann kommt er nur bis zu readyState 1 und hängt dort. ohne klammern funktioniert alles wie erwartet. wenn ich jetzt xmlHttpObject.onreadystatechange = handleVGC; einbaue und nutze, wird bis zu diesem teil alles genommen, sprich xmlHttpObject.open('get','crawl.php?vgc='+vgc); wird noch aufgerufen, allerdings, und das verwirrt mich nach wie vor, kommt danach der readyState 1 von Content und da bleibt er hängen. die seite liefert aber auf jeden fall eine rückgabe, d.h. selbst wenn er den content-teil nutzt, dann müsste er die daten ausgeben, nur halt im falschen div. was ist da los?? EDIT: dazu ist noch zu sagen, in jedem fall wird zuerst einmal der handleContent-Teil genutzt, in der folge wird dann das div in dem vgc steht, gesendet wird und ausgegeben wird erst erzeugt. |
|
|
AW: onreadystatechange wechseln? |
|
|
# 8 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.168
Power: 52
|
|
|
|
AW: onreadystatechange wechseln? |
|
|
# 9 | |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Sep 2006
Beiträge: 242
Power: 18
Themenstarter |
ist echt ne gute seite, danke. hat bei meinem problem aber leider auch nicht direkt weitergeholfen
![]() wichtiger war dann doch die frage Zitat:
PHP-Code:
von meiner seite aus ist das problem geklärt, daher mache ich hier mal zu. mit currying beschäftige ich mich aber auf jeden fall auch noch mal wenn ich das hier fertig habe Danke! |
|
|
|
![]() |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Ölpumpe wechseln? | Nikemare | Auto und Motorrad | 5 | 15.02.2013 09:24 |
| Uni wechseln | $$$moq | Schule, Studium, Ausbildung | 2 | 03.09.2011 10:46 |
| Fh wechseln | irmao | Schule, Studium, Ausbildung | 4 | 30.04.2011 14:34 |
| Ausblindungsunternehmen wechseln? | cantona89 | Schule, Studium, Ausbildung | 3 | 20.02.2010 18:01 |
| Wechseln? | Sir Dunk-A-Lot | Netzwerk & Internet | 7 | 13.09.2007 21:52 |
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |