Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]ZEND wyszukiwanie routing znak ?, Jak go usunąć ??
kielich
post
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam,

mam problem ponieważ pisząc w zendzie mam porobione routingi i kiedy chcę wysłać formularz (wyszukiwanie) GETEM no to wszystko siada.

Link np. mam

www.xxx.pl/szukam/?poszukuje=asdasd

no a muszę mieć
www.xxx.pl/szukam/asdasd

jak mam to zrobić

Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


1) piszesz na złym forum
2) musisz zdefiniować taki routing, do tego nadaje się static, nie wiem z jakiej wersji korzystasz zenda, gdzie robisz routingi, polecam zapoznanie się z zend zend router w manualu
Go to the top of the page
+Quote Post
kielich
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Tak wiem jak działa routing z zendzie i korzystam z v 1.9

ale nie wiem jak wykonać taki routing do wyszukiwarki mam taki kod

routing (index.php);

  1. ...
  2. ->addRoute('szukam', new Zend_Controller_Router_Route('szukam/:page', array('controller' => 'index', 'action' => 'szukam','page'=>'page')))
  3.  

formularz
  1. <form action="<?php echo $this->baseUrl;?>/szukam" method="get">
  2. <input type="text" name="szukam"/>
  3. <input type="submit" value="szukaj" />
  4. </form>


Niech Ktoś kto zna się na rzeczy napisze mi jakiś przykład aby wszystko fajnie chodziło ... bez te wyszukiwarki nie mogę ruszyć dalej ...
Go to the top of the page
+Quote Post
zend
post
Post #4





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Musisz przepisać adres na taki jaki chcesz w javascrip. No chyba że chodzi Ci o
  1. <form action="<?php echo $this -> url(array('controller' => 'ddsa') , 'myRouting' , true); ?>" method="get">


I pisz na forum do tego przeznaczonym, a nie w przeczkolu
Go to the top of the page
+Quote Post
kielich
post
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Czy mógłbyś mi napisać jakiś przykład którego % zadziałania będzie > niż 50 % (IMG:style_emoticons/default/biggrin.gif) kurcze siedzę od rana i kombinuje i nic ...
Go to the top of the page
+Quote Post
zend
post
Post #6





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Dołącz Jquery i w headzie kod poniżej, oczywiście po wcześniejszym dostosowaniu (IMG:style_emoticons/default/smile.gif) pisane z palca, ale powinno działać, dorzuć jeszcze odpowiednie id do formularza
  1. $(document).ready(function(){
  2. $('#submitButtonId').click(function(){
  3. $('#formId').attr($('#formId').attr('action') + '/' + $('#szukajka').attr('value'));
  4. });
  5. });


  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>


Ten post edytował zend 3.06.2010, 17:59:01
Go to the top of the page
+Quote Post
Daimos
post
Post #7





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(zend @ 3.06.2010, 18:56:23 ) *
Dołącz Jquery i w headzie kod poniżej, oczywiście po wcześniejszym dostosowaniu (IMG:style_emoticons/default/smile.gif) pisane z palca, ale powinno działać
  1. $(document).ready(function(){
  2. $('#submitButtonId').click(function(){
  3. $('#formId').attr($('#formId').attr('action') + '/' + $('#szukajka').attr('value'));
  4. });
  5. });


[html]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
[/htlm]

warto do tego jeszcze przeleciec wpisana fraze jakims wyrazeniem, zanim to wszystko wyslesz, bo wpisze ktos /, albo inny znak specjalny i bedzie... (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kielich
post
Post #8





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Kurde nie czaje tego kawałka ... możesz napisać do tego przykładowy formularz i sposób odebrania danych (IMG:style_emoticons/default/questionmark.gif)

Będę niezmiernie wdzięczny
Go to the top of the page
+Quote Post
zend
post
Post #9





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Cytat
[...]no a muszę mieć
Wcale nie musisz mieć (IMG:style_emoticons/default/smile.gif)

  1. <form action="<?php echo $this -> url(array( ) , 'szukam' , true); ?>" method="get">
  2. <input type="text" id="page" name="page" />


  1. //routing
  2. ->addRoute('szukam', new Zend_Controller_Router_Route('szukam', array('controller' => 'index', 'action' => 'szukam')));
  3.  
  4. //kontroler
  5. $this -> _getParam('page' , 'page');


Sorki że tak skaczę z pomysłu na pomysł, ale chcę Ci podać najprostszy dla Ciebie sposób

Ten post edytował zend 3.06.2010, 18:30:12
Go to the top of the page
+Quote Post
kielich
post
Post #10





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


No ten przykład nie działa tak jak ma działać a link jest taki jak był
Go to the top of the page
+Quote Post
zend
post
Post #11





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


  1. <!-- w sekcji head -->
  2. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  3.  
  4. <form id="searchForm" action="<?php echo rtrim($this-> url(array() , 'szukaj' , true));?>" method="get">
  5. <input id="searchField" type="text" name="szukam"/>
  6. <input id="submitButton" type="submit" value="szukaj" />
  7. </form>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. $('#ubmitButton').click(function(){
  3. $('#searchForm').attr('action' , $('#searchForm').attr('action') + '/' + $('#searchField').attr('value'));
  4. });
  5. });
  6.  
[JAVASCRIPT] pobierz, plaintext


Ten post edytował zend 3.06.2010, 19:17:06
Go to the top of the page
+Quote Post
kielich
post
Post #12





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Wywala mi błąd ze nie mam zdefiniowanego router "Szukaj" możesz jakoś mi to wytłumaczyć co i jak ...
Go to the top of the page
+Quote Post
vermis
post
Post #13





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Jak na mój gust to link
www.xxx.pl/szukam/?poszukuje=asdasd
powinien działać w standardowej konfiguracji, czyli kontroler 'szukam' akcja 'index'. Nie rozumiem po co do tego angażować javascript, czy ajax.
Jeśli masz jakiś routing dla 'szukam' to go wywal i powinno działać.
Go to the top of the page
+Quote Post
woj_tas
post
Post #14





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

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


Cytat(kielich @ 3.06.2010, 14:26:32 ) *
Witam,

mam problem ponieważ pisząc w zendzie mam porobione routingi i kiedy chcę wysłać formularz (wyszukiwanie) GETEM no to wszystko siada.

Link np. mam

www.xxx.pl/szukam/?poszukuje=asdasd

no a muszę mieć
www.xxx.pl/szukam/asdasd

jak mam to zrobić


Nie pisze w zendzie, ale problem ten dotyczy raczej wszystkich struktur.

Wyslij formularz pod normalny adres z dodatkowym parametrem.
Kod
www.xxx.pl/szukam/?poszukuje=asdass&get=1



W akcji index sprawdz czy jest paramter get. jezeli tak to zrob redirecta pod adres jaki oczekujesz:
Kod
www.xxx.pl/szukam/asdass


Chyba ze w zendzie mozna rozpoznac urle bez dodatkowych parametrów.

Go to the top of the page
+Quote Post
kielich
post
Post #15





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


ale ja musze miec url lub dostac się do danych ja wyzej pisałem ponieważ dalej mi to potrzebne do paginacji

OK zrobiłem tak
  1. ->addRoute('szukam', new Zend_Controller_Router_Route('szukam', array('controller' => 'index', 'action' => 'szukam')))


formularz normalny
dane odbieram sobie tak

  1. $szukane = Zend_Controller_Action::_getParam('szuka');

i działa ale link jest
www.xxx.pl/szukam?szuka=N&page=2

i to mi się nie podoba strasznie ponieważ w całym serwisie mam fajnie zdefiniowane linki i wszystko ładnie wygląda to i tutaj (wyszukiwarce) chciałbym mieć cos na wzór
www.xxx.pl/szukam/N/2
tylko nie wiem jak ten ROUTING zorganizować pomóżcie mi w tej sprawie ....
Go to the top of the page
+Quote Post
zend
post
Post #16





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


  1. <head>
  2. <!-- w sekcji head -->
  3. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  4.  
  5. <script type="text/javascript">
  6. $(document).ready(function(){
  7. $('#submitButton').click(function(){
  8. //alert('clicked');
  9. //alert($('#searchForm').attr('action') + '/szukaj/' + $('#searchField').val());
  10. window.location = $('#searchForm').attr('action') + '/szukaj/' + $('#searchField').val();
  11. return false;
  12. });
  13. });
  14.  
  15.  
  16.  
  17. </head>
  18. <body>
  19. <!-- w sekcji head -->
  20. <form id="searchForm" action="<?php echo rtrim($this-> url(array() , 'szukaj' , true));?>" method="get">
  21. <input id="searchField" type="text" name="szukam"/>
  22. <input id="submitButton" type="submit" value="szukaj" />
  23. </form>
  24.  
  25. </body>
  26. </html>


Proszę, działający przykład, (testowane bez routingu)

Ten post edytował zend 4.06.2010, 10:18:37
Go to the top of the page
+Quote Post
zegarek84
post
Post #17





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


z zenda nie korzystam chociaż tam do dokumentacji czasami zaglądam gdyż to zbiór dobrych klas... i jak luknąłem to podpinanie tutaj zmiennych wygląda jak bindowanie w PDO... zgodnie z dokumentacją zamiast
  1. ->addRoute('szukam', new Zend_Controller_Router_Route('szukam', array('controller' => 'index', 'action' => 'szukam')))
powinieneś mieć raczej coś w stylu:
  1. ->addRoute('szukam', new Zend_Controller_Router_Route('szukam/:szuka/:page', array('controller' => 'index', 'action' => 'szukam')))

poczytaj dokumentację i po testuj kilka wariantów...
w ostateczności jest jeszcze klasa Zend_Controller_Router_Route_Regex gdzie już jej zastosowanie wygląda jak użycie wyrażeń regularnych...
Go to the top of the page
+Quote Post
kielich
post
Post #18





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Kurde to nie dział ponieważ w URL mam

szukam/szukam/asd (zmieniłem na własne potrzeby szukaj na szukam w head i w formularzu)

pierwsze szukam to akcja a drugie to zmienna z formularza (chyba) i nie przenosi mnie do podstrony szukam ) ....
Go to the top of the page
+Quote Post
zend
post
Post #19





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Naprawde to taki problem żeby zauwarzyć że jest o jedno "szukaj" za dużo i usunąć z kodu?(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) Jeśli to naprawde taki problem to chyba porwałeś się na nie tego fw co trzeba, podstawy też musisz nadgonić
[JAVASCRIPT] pobierz, plaintext
  1. window.location = $('#searchForm').attr('action') + $('#searchField').val();
[JAVASCRIPT] pobierz, plaintext


Ten post edytował zend 4.06.2010, 21:31:17
Go to the top of the page
+Quote Post
kielich
post
Post #20





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


OK dostosowałem to co mi napisałeś ZEND i smiga (IMG:style_emoticons/default/smile.gif) kurcze thx ....powiedz mi prosze jeszcze jak odczytać cały aktualny URL


zmieniłem już to przed twoim postem i działało (IMG:style_emoticons/default/smile.gif) czy mógłbyś mi jeszcze wytłumaczyć kod tego JS
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 14:17