Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML] Problem ze spacjami w window.location (formularz), jak je zamienić (java script) ?
Zyga24
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z formularzem:

  1. <form onsubmit="window.location='/strona-'+this.textfield.value;return false;">
  2. <input type="text" id="textfield" name="coto" value="" size="11" />
  3. <input type="submit" id="submit" name="submit" value="Go" />
  4. </form>


Jeśli w formularzu pojawi sięwięcej niż jedno słowo (+this.textfield.) to dostaje taki link:
/strona-słowo słowo a powinno być np:
/strona-słowo+słowo

Jak zamienić spacje (między wyrazami) np na '-' lub '+' , tak , aby link był poprawny, np na '-' lub '+' ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Użyj escape().
Go to the top of the page
+Quote Post
Zyga24
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Czyli chodzi o:

  1. content = document.getElementById(content_element).value;
  2. content = escape(content);


Ale jak to w moim przypadku, zwrócić do formularza ?
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Zobacz:
Kod
<form onsubmit="window.location='/strona-'+escape(this.textfield.value);return false;">


Btw. w jakiej przeglądarce testujesz? Bo ff escapuje z automatu.
Go to the top of the page
+Quote Post
Zyga24
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Testuje w FF

Czyli niby w FF, nie musze tego używać ? smile.gif
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Dane musisz zawsze odpowiednio przefiltrować przed wrzuceniem nich do adresu URL.
2. Nie powinieneś korzystać z escape(). Użyj encodeURIComponent(). http://xkr.us/articles/javascript/encode-compare/

Ten post edytował Crozin 2.09.2012, 19:49:33
Go to the top of the page
+Quote Post
Zyga24
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.09.2012

Ostrzeżenie: (0%)
-----


Cytat(Spawnm @ 2.09.2012, 19:54:11 ) *
Zobacz:
Kod
<form onsubmit="window.location='/strona-'+escape(this.textfield.value);return false;">


Nie działa mi to:
<form onsubmit="window.location='/szukaj-'+escape(this.textfield1.value)+'-1';return false;">
dostaje wciąż linki ze spacjami :/

Poza tym chodzi mi nie tylko o spacje. Chciałbym zmodyfikować to co jest wpisane w formularz, np zamienić wielkośc liter, usunąć niedozwolone znaki, ogonki i ogólnie
za pomocą php przerobić wartość z formularza i wysłać go z przerobioną wartością.

Jak w takim razie, przypisać do zmiennej wartosć this.textfield1.value i po przerobieniu wysłać formularz ze zmodyfikowanym wpisem ?



Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:26