Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z formularzem
majestiq
post 13.08.2009, 03:12:02
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Mam prosty formularz:


  1.  
  2.  
  3. <?php
  4.  
  5. $autor = $_POST['autor'];
  6.  
  7. ?>
  8. <div id="autor">
  9.  
  10. <form id="autor_szukaj" target="_blank" method="post" action="http://www.abc.pl/szukaj- <?php echo $autor."-100-1/"; ?>" name="kodowanie">
  11. <input id="autor_input" type="text" name="autor" value="" maxlength="255">
  12. <input id="autor_input_szukaj" type="submit" value="Szukaj" name="bvc">
  13. </form>
  14. </div>
  15.  
  16.  


Po wpisaniu nazwy autora powinna się załadować taka strona:
http://www.abc.pl/szukaj-mickiewicz-100-1/ , niestety coś robię nie tak

i nie mogę w żaden sposób dodać nazwy autora do linku, po prostu ładuje mi się coś takiego:
http://www.abc.pl/szukaj--100-1/

Nie wiem czy chodzi o zmienną post, która jest definiowana za wcześnie czy o coś innego.

Co robię nie tak ?


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fafu
post 13.08.2009, 04:02:24
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


  1. $autor = $_POST['autor'];

to ci stworzy dopiero po wysłaniu formularza, możesz zrobić obejście w javascript (onsubmit) lub zamiast method="post" użyć method="get" ale to ci zrobi link typu index.php?autor=mickiwicz&bvc=Szukaj


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
majestiq
post 13.08.2009, 04:13:17
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Nie chcę używać GET właśnie ze względu na formę adresu, musi być koniecznie taki jak podałem.
Czy ta opcja z JS jest jedyną możliwością ?


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fifi209
post 13.08.2009, 11:56:20
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(majestiq @ 13.08.2009, 04:13:17 ) *
Nie chcę używać GET właśnie ze względu na formę adresu, musi być koniecznie taki jak podałem.
Czy ta opcja z JS jest jedyną możliwością ?


Tak opcja js jest jedyną możliwością. Nie możesz wstawiać czegoś czego fizycznie nie ma.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
majestiq
post 13.08.2009, 20:07:53
Post #5





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Na JS praktycznie w ogóle się nie znam, ale trochę poszperałem i zrobiłem coś takiego:

  1.  
  2. <div id="autor">
  3.  
  4. <form id="formularz" onsubmit="return przejdz();" method="post" action="">
  5.  
  6. <input id="autor_input" type="text" name="autor" value="" maxlength="255">
  7.  
  8. <input id="autor_input_szukaj" type="submit" value="Szukaj" name="bvc">
  9.  
  10. </form>
  11.  
  12. </div>
  13.  
  14.  
  15. <script type="text/javascript">
  16.  
  17. function przejdz() {
  18.  
  19. var form = document.getElementById("formularz");
  20.  
  21. form.action = "http://www.abc.pl";
  22.  
  23. form.submit();
  24.  
  25. return false;
  26.  
  27. }
  28.  
  29. </script>
  30.  
  31.  


No i wsumie działa, strona się przeładowuje za pomocą JS, ale jak dodać do tego co mam w form.action: "http://www.abc.pl", parametr z formularza ($_POST['autor']) ?
Próbowałem w tego JS wstawić kod php, ale tak się nie da :/


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fifi209
post 13.08.2009, 20:17:28
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Robisz tak:
  1. <input id="autor_input" type="text" id="autor" name="autor" value="" maxlength="255">


i w js:
[JAVASCRIPT] pobierz, plaintext
  1. form.action = 'http://www.abc.pl/?autor=' + document.getElementById('autor').value;
[JAVASCRIPT] pobierz, plaintext


I będziesz miał get'em. Jeżeli chcesz potem to jquery albo inny fw.

Ten post edytował fifi209 13.08.2009, 20:17:43


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Fafu
post 13.08.2009, 20:22:22
Post #7





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


document.forms[0].autor.value

poszukaj w google "formularze i javascript"


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
majestiq
post 14.08.2009, 01:46:37
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Cytat(fifi209 @ 13.08.2009, 21:17:28 ) *
Robisz tak:
  1. <input id="autor_input" type="text" id="autor" name="autor" value="" maxlength="255">


i w js:
[JAVASCRIPT] pobierz, plaintext
  1. form.action = 'http://www.abc.pl/?autor=' + document.getElementById('autor').value;
[JAVASCRIPT] pobierz, plaintext


I będziesz miał get'em. Jeżeli chcesz potem to jquery albo inny fw.


To działa, ale jak mówię nie może być realizowane get'em, gdyz forma linka wynikowego musi być taka:
http://www.abc.pl/szukaj-mickiewicz-100-1/ (żadnych znaków zapytań jako parametrów)

Sporo się już naszukałem o tych formularzach i JS, ale coś nie mogę sobie z tym poradzić.
Naprawdę tak ciężko wyciągnąć z formularza nazwe autora, stworzyć takiego linka jak wyżej podany i przekierować
użytkownika na taką stronę ?


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fifi209
post 14.08.2009, 02:07:57
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


to zamiast:

?autor=

daj tam

szukaj-(tutaj js)-100-1

Taki leń?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
majestiq
post 14.08.2009, 02:15:09
Post #10





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Oczywiście, że tak próbowałem, jednak jak usunę ten ? z początku to wszystko pada, tzn już się nigdzie
nie przekierowuje tylko strona się odświeża :/

  1. form.action = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value;


Chyba, że jeszcze o coś innego Ci chodziło ?

Ten post edytował majestiq 14.08.2009, 02:17:39


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
majestiq
post 14.08.2009, 02:20:07
Post #11





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Nie no nie licze na gotowca bo w sumie i tak chyba większość już mam.
Sądzę, że jakaś mała modyfikacja i powinno działać:

  1. <div id="autor">
  2.  
  3. <form id="formularz" onsubmit="return przejdz();" method="post" action="">
  4.  
  5.  
  6. <input id="autor_input" type="text" name="autor" value="" maxlength="255">
  7.  
  8. <input id="autor_input_szukaj" type="submit" value="Szukaj" name="bvc">
  9.  
  10. </form>
  11.  
  12. </div>
  13.  
  14.  
  15. <script type="text/javascript">
  16.  
  17. function przejdz() {
  18.  
  19. var form = document.getElementById("formularz");
  20.  
  21. form.action = 'http://www.abc.pl/szukaj-' + document.getElementById('autor_input').value;
  22.  
  23. form.submit();
  24.  
  25. return false;
  26.  
  27. }
  28.  
  29. </script>


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fifi209
post 14.08.2009, 02:22:11
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


[JAVASCRIPT] pobierz, plaintext
  1. form.action = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value;
[JAVASCRIPT] pobierz, plaintext


A nie tak?
[JAVASCRIPT] pobierz, plaintext
  1. window.location = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value + '100-1/';
[JAVASCRIPT] pobierz, plaintext


i to:
[JAVASCRIPT] pobierz, plaintext
  1. var form = document.getElementById("formularz");
  2. form.action = "http://www.abc.pl";
  3. form.submit();
[JAVASCRIPT] pobierz, plaintext

wywal z tamtej funkcji


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Fafu
post 14.08.2009, 02:23:54
Post #13





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


w sumie to bedzie prostsze i bedzie dzialac przy wylaczonym JS:
w index.php daj na górze:
  1. <?php
  2. if(isset($_GET['autor']) && isset($_GET['bvc']) && $_GET['bvc']=='Szukaj') header('Location: /szukaj-'.$_GET['autor'].'-100-1');
  3. ?>

i w action dla <form/> daj index.php


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
Fifi209
post 14.08.2009, 02:26:39
Post #14





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(Fafu @ 14.08.2009, 02:23:54 ) *
w sumie to bedzie prostsze i bedzie dzialac przy wylaczonym JS:

W ogóle nie będzie działało. Czemu? Nagłówki wysyłamy jako pierwsze tak? ;>


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
majestiq
post 14.08.2009, 02:29:19
Post #15





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Cytat(fifi209 @ 14.08.2009, 03:22:11 ) *
[JAVASCRIPT] pobierz, plaintext
  1. form.action = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value;
[JAVASCRIPT] pobierz, plaintext


A nie tak?
[JAVASCRIPT] pobierz, plaintext
  1. window.location = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value + '100-1/';
[JAVASCRIPT] pobierz, plaintext


i to:
[JAVASCRIPT] pobierz, plaintext
  1. var form = document.getElementById("formularz");
  2. form.action = "http://www.abc.pl";
  3. form.submit();
[JAVASCRIPT] pobierz, plaintext

wywal z tamtej funkcji




Postąpiłem wg Twoich wytycznych, kod JS przebudowałem:

  1.  
  2. <script type="text/javascript">
  3.  
  4. function przejdz() {
  5.  
  6.  
  7. window.location = 'http://www.abc.pl/szukaj-' + document.getElementById('autor').value + '100-1/';
  8.  
  9.  
  10.  
  11. return false;
  12.  
  13. }
  14.  
  15. </script>
  16.  


No i efekt taki, że strona się przekierowuje, ale bez względu na to co wpisze w formularz to i tak zawsze przechodzi na:
www.abc.pl a nie http://www.abc.pl/szukaj-(...)

Jeszcze spróbuje sposobem, który zaproponował FAFU


--------------------
Free mp3 download.
Go to the top of the page
+Quote Post
Fifi209
post 14.08.2009, 02:34:18
Post #16





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie działa, może dlatego że przed 100 brakuje myślnika? Taka literówka.

Jego skrypt w najlepszym wypadku wygeneruje: headers already sent ponieważ nagłówki muszą lecieć jako pierwsze do przeglądarki (przed kodem html etc.)


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Fafu
post 14.08.2009, 02:36:42
Post #17





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


No to przecież w moim poście napisałem
w index.php daj na górze:

poza tym nie muszą być wysyłane jako pierwsze jeśli się włączy buforowanie winksmiley.jpg

Ten post edytował Fafu 14.08.2009, 02:37:22


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
majestiq
post 14.08.2009, 02:39:24
Post #18





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Rzeczywiście brakowało myślnika biggrin.gif

Masz u mnie duże piwko!!

Wielkie dzięki za pomoc, bo już myślałem, że się zapłacze ;>

Cytat(Fafu @ 14.08.2009, 03:36:42 ) *
No to przecież w moim poście napisałem
w index.php daj na górze:

poza tym nie muszą być wysyłane jako pierwsze jeśli się włączy buforowanie winksmiley.jpg


Tym sposobem też próbowałem, ale nie poszło.

W każdym razie dzięki wszystkim za pomoc smile.gif


--------------------
Free mp3 download.
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 Wersja Lo-Fi Aktualny czas: 19.06.2025 - 07:40