hotti: Fehlerseite ausgeben

moin,

folgende Kontrollstruktur steuert mein Script (Perl):

  
if(param()){  
	if(my $q = ef(param('q'))){  
		my $ref = query($q);  
		print cgiHeader, htmlUp("Suche nach Ortsnetzkennzahlen (Vorwahlen)"), form($q, $ref), htmlDown;  
	}  
	elsif(my $q = ef(param('xq'))){  
		print "Content-type: text/plain; charset=$ENV{charset}\n\n";  
		my $dc = chr(12);  
		my $ref = query($q);  
		if((ref($ref) eq 'ARRAY') && scalar @$ref){  
			print join($dc, @$ref);  
		}  
		else{  
			print "Keine Treffer";  
		}  
	}  
	else{  
		print "Content-type: text/plain; charset=$ENV{charset}\n\n";  
		print "Keine Suchbegriffe";		  
	}  
}  
else{  
	print cgiHeader, htmlUp("Suche nach Ortsnetzkennzahlen (Vorwahlen)"), form(), htmlDown;  
}  

und stellt damit sicher, dass es mit oder ohne JS funktioniert. Das Problem ist die Fehlerseite, falls nichts eingegeben wurde. D.H., hat der UA JS aktiviert, kommt der Fehlertext ins DOM an die richtige Stelle. Hat der UA jedoch kein JS aktiviert, sieht die Fehlerseite bischen nackt aus. Mache ich jedoch die Fehlerseite komplett, passt die wiederrum nicht ins DOM...

Zum Testen

Bitte mal um Hinweise,
Horst Kritisch

  1. Hi,

    Das Problem ist die Fehlerseite, falls nichts eingegeben wurde. D.H., hat der UA JS aktiviert, kommt der Fehlertext ins DOM an die richtige Stelle. Hat der UA jedoch kein JS aktiviert, sieht die Fehlerseite bischen nackt aus. Mache ich jedoch die Fehlerseite komplett, passt die wiederrum nicht ins DOM...

    Was meinst du mit „passt nicht ins DOM”?

    Wenn kein JS aktiviert ist, dann schickt der Nutzer ganz normal das Formular ab. Und in dem Fall gibst du als Antwort einfach ein vollständiges HTML-Dokument zurück, und gut is'.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hi,

      Wenn kein JS aktiviert ist, dann schickt der Nutzer ganz normal das Formular ab. Und in dem Fall gibst du als Antwort einfach ein vollständiges HTML-Dokument zurück, und gut is'.

      Die Frage ist: Was gebe ich bei "?q=" zurück? Zumindest mit meiner derzeitigen Kontrollstruktur stellt sich diese Frage, d.h., ich müsste vorher wissen, ob der UA JS aktiviert hat (Ajax-Response schicken) oder nicht (vollst. HTML schicken).

      Viele Grüße,
      Hotti

      1. Hi,

        Zumindest mit meiner derzeitigen Kontrollstruktur stellt sich diese Frage, d.h., ich müsste vorher wissen, ob der UA JS aktiviert hat (Ajax-Response schicken) oder nicht (vollst. HTML schicken).

        Na dann schickst du beim AJAX-Request halt einen zusätzlichen Parameter mit, der im „normalen” Formular nicht enthalten ist.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Hi,

          Zumindest mit meiner derzeitigen Kontrollstruktur stellt sich diese Frage, d.h., ich müsste vorher wissen, ob der UA JS aktiviert hat (Ajax-Response schicken) oder nicht (vollst. HTML schicken).

          Na dann schickst du beim AJAX-Request halt einen zusätzlichen Parameter mit, der im „normalen” Formular nicht enthalten ist.

          Das ist ne gute Idee, danke Dir!

          Abstrakt: Wenn vergessen wurde, was einzugeben ('q=') muss die Parameterliste anders aussehen, z.B. so:
          Ajax-Request    => q=;xhr=1      (Ajax-Response)
          Browser-Request => q=;ua=1       (kompl. HTML)

          Ich denke, dass lässt sich umsetzen.

          Hotti