zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden &-Zeichen im Text schneidet String ab

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 29.04.2010, 16:10
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.07.2007
Beiträge: 3
2beers befindet sich auf einem aufstrebenden Ast
Standard &-Zeichen im Text schneidet String ab

Wie kann ich vermeiden, dass bei der Verarbeitung von Formular-Eingaben, die ein "&" enthalten, der String an diesem Zeichen abgeschnitten wird? Ich habe bisher nur Möglichkeiten gefunden, das &-Zeichen zu ersetzen. Da die Eingaben an eine Suchmaschine übermittelt werden, möchte ich die User-Eingaben aber nach Möglichkeit komplett und unverändert übermitteln.

Hier kann man mein Problem testen: 2beers.eu Einfach in das Suchformular oben irgendeine Phrase mit Kaufmannsund/Ampersand (&) eingeben und siehe da, alle nachfolgenden Eingaben verschwinden auf Nimmerwiedersehen.

Hier noch der verwendete JavaScript-Code:

var suchbegriff = document.suche.eingabefeld.value ;
if (document.suche.suchmaschine[0].checked) self.location.href="http://www.google.de/search?q="+encodeURI(suchbegriff)+"&hl=de&btnG=Goo gle-Suche" ;
if (document.suche.suchmaschine[1].checked) self.location.href="http://de.wikipedia.org/wiki/"+encodeURI(suchbegriff) ;
if (document.suche.suchmaschine[2].checked) self.location.href="http://search.ebay.de/search/search.dll?query="+suchbegriff ;

Geändert von 2beers (29.04.2010 um 16:16 Uhr) Grund: Ergänzung
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.04.2010, 16:47
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Das geht nicht. das "&" ist das Trennzeichen für die CGI-Parameter. somit wird
die CGI-Variable beendet weil die nächste beginnt.

Du könntest das irgendwie mappen, vielleicht geht es als "\&" oder "&" durch.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 29.04.2010, 16:50
Benutzer
neuer user
 
Registriert seit: 26.04.2010
Beiträge: 75
moontan befindet sich auf einem aufstrebenden Ast
Standard

Schau mal was encodeURI() macht (bzw. nicht macht) - dann siehst Du woran das liegt

decodeURIComponent() sollte helfen.

Uli
Mit Zitat antworten
  #4 (permalink)  
Alt 29.04.2010, 18:24
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.07.2007
Beiträge: 3
2beers befindet sich auf einem aufstrebenden Ast
Standard decodeURIComponent()

Danke für Eure schnellen Antworten!

@moontan: Dein Tipp ist zweifellos eine heiße Spur Aber ich kann mir noch keinen rechten Reim darauf machen, wie ich damit mein Problem elegant lösen könnte. Auf das "encodeURI()" bin ich leider angewiesen, weil sonst - unabhängig vom Zeichensatz - Sonderzeichen mit vielen Browsern nicht korrekt übermittelt werden. Ich befinde mich gerade in einem Konzentrationsloch. Wärst Du so nett und würdest mir auf die Sprünge helfen?
Mit Zitat antworten
  #5 (permalink)  
Alt 29.04.2010, 18:42
Benutzer
neuer user
 
Registriert seit: 26.04.2010
Beiträge: 75
moontan befindet sich auf einem aufstrebenden Ast
Standard

Hi 2beers,

na klar.
encodeURI() hat die fiese Eigenschaft das & eben nicht zu encoden.....
Darum decodeURIComponent() - da wird auch das & mit encoded

Uli

Edit sagt : encodeURIComponent() natürlich

Geändert von moontan (29.04.2010 um 18:48 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 29.04.2010, 19:10
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 27.07.2007
Beiträge: 3
2beers befindet sich auf einem aufstrebenden Ast
Standard encodeURIComponent()

Aja, ich brauche also einfach nur "encodeURI()" gegen "encodeURIComponent()" zu tauschen. Ich bin begeistert! Man entdeckt doch immer wieder erhebliche Lücken beim eigenen Basiswissen.

Ich stand vorhin wegen des "decodeURIComponent()" etwas auf dem Schlauch und dachte, ich müsse das irgendwie mit dem "encodeURI()" verschachteln.

Vielen Dank!
Mit Zitat antworten
  #7 (permalink)  
Alt 30.04.2010, 10:36
Benutzer
neuer user
 
Registriert seit: 26.04.2010
Beiträge: 75
moontan befindet sich auf einem aufstrebenden Ast
Standard

Ja - mit dem Tippfehler habe ich wohl ziemliche Verwirrung gestiftet. Sorry dafür ....
Mit Zitat antworten
Antwort

Stichwörter
ampersand, et-zeichen, kaufmannsund

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wrapper wächst nicht mit, keine Floats maclady CSS 11 10.02.2010 18:30
Wachsende Container Andy CD CSS 13 10.02.2010 14:08
DIV bis GANZ unten burnZ CSS 5 27.07.2008 14:14
Helft mir. Ich habe voll die Leseschwäche nick CSS 12 15.01.2008 21:52
Problem mit div und Höhe deep4 CSS 2 13.11.2007 21:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:01 Uhr.