PDA

Zobacz pełną wersję : połączenie widoku componentu z modułem zawierającym formularz wyszukiwarki



prostepc
17-12-2012, 11:12
Czy możliwe jest połączenie modułu zawierającego tylko własny formularz wyszukiwarki z widokiem komponentu który będzie wyświetlał wyniki wyszukiwania na podstawie zadanych przez moduł kryteriów z formularza?

pawelSafiStudio
17-12-2012, 11:15
Jest to możliwe. Musisz tylko napisać moduł, gdzie podasz pola wyszukiwarki a następnie komponent, który to wyszukiwanie obsłuży.

prostepc
17-12-2012, 11:39
ale jak muszę skonstruować skonstruować zapis formularza żebym potem bez przeszkód mógł odczytać zmienne z niego bez problemu. Problem mam z tym żeby przesyłać zmienne z formularza i potem je odczytywać. Pierwsze przesłanie pokazuje mi wszystko
ok a wszystko kolejne już zachowują się tak jak by cały czas była ta sama pierwsza wartość wysyłana.

pawelSafiStudio
17-12-2012, 11:48
Przykro mi ale niestety pytasz nawet nie tyle o podstawy Joomla! co podstawy PHP. Wystarczy wysłać dane poprzez POST lub GET i dane te pobrać w komponencie. Więcej pomóc Ci nie mogę gdyż to o co pytasz to naprawdę podstawy, które można poznać czytając każdy poradnik PHP.

prostepc
17-12-2012, 14:25
Znam teorię i trochę praktyki php. Wiem jak przesłać dane z formularza ale w tym wypadku dzieję się tak jak by pierwsza wartość zapisywana była gdzieś w zmiennej joomli i tak jak by to była zmienna sesyjna bo po ponownym odpaleniu przeglądarki pierwszy raz jest ok przekazywane a potem znowu to samo. Programowania rzeczy do joomli dopiero się uczę.

pawelSafiStudio
17-12-2012, 14:37
A możesz pokazać jakąś cześć kodu formularza i jak potem pobierasz dane ?

prostepc
17-12-2012, 15:49
<form action="index.php?option=com_komponent&view=wyniki" method="post">

<select name="klawiatura">
<option value="mini">Mini</option>
<option value="numeryczna"> numeryczna</option>
</select>
</form>



$zmienna= JRequest::getVar(klawiatura);

np tak.


albo w artykule z wykorzystaniem dodatku directphp przez $zmienna=$_POST['klawiatura'];

pawelSafiStudio
17-12-2012, 16:01
Po pierwsze używaj znaczników kodu w edytorze forum. I teraz pytanie co nie działa ? Bo nie rozumiem:


po ponownym odpaleniu przeglądarki pierwszy raz jest ok przekazywane a potem znowu to samo

Możesz to rozwinąć ? Co jest ok a co jest to samo.

prostepc
17-12-2012, 16:18
no właśnie nie wiem bo teraz jeszcze raz to próbowałem i teraz niby wyświetla mi prawidłowo przekazywaną zmienną. Wcześniej niby przekazywało w adresie zmienne ale nie wyświetlało mi wartości poprawnie. Chodzi o to że przy wejściu na stronę klikając przycisk formularza wyszukiwarki w adresie przekazywane były zmienne z formularza natomiast skrypt wyświetlający wartość zmiennej pokazywał wartości z pierwszego użycia formularza i przy kolejnych użyciach i zmianie wartości zmiennych dalej pokazywane były wartości wybrane przy pierwszym użyciu formularza.
Rozumiem że jeśli chce ukryć wartości zmiennych post w adresie url po uzyciu formularza muszę użyć skryptu js?

pawelSafiStudio
17-12-2012, 16:25
Rozumiem że jeśli chce ukryć wartości zmiennych post w adresie url po uzyciu formularza muszę użyć skryptu js?

Chodzi Ci o parametry GET ?

prostepc
17-12-2012, 16:31
chodzi mi o to żeby w pasku adresu zamiast np:



http://www.strona.pl/index.php/wyszukiwarka.html?zmienna1=1&zmienna2=2&zmienna3=3 itd ..



było tylko:


http://www.strona.pl/index.php/wyszukiwarka.html

a zmienne i tak były przekazywane

pawelSafiStudio
17-12-2012, 16:43
Jeśli masz taki adres to masz coś nie tak z formularzem. Taki zapis adresu kanonicznego mówi o przekazywaniu zmiennych metodą GET. Jeśli wysyłasz metodą POST to te parametry nie pojawią się w adresie.
Natomiast jeśli chcesz ukryć jakieś inne dane to pojęcie przyjaznych linków powinno Cię naprowadzić.

Pawelo31
17-12-2012, 21:24
jeśli twój formularz będzie zawierał ukryte pola option i view np przykład:

<form enctype="multipart/form-data" action="" method="post" name="wycofanie">
<input class="button-wrapper" type=submit value=" Wycofaj ">
<input type="hidden" name="id" value="11" />
<input type="hidden" name="option" value="com_aukcje" />
<input type="hidden" name="view" value="potwierdzwycofanie" />
</form>
będzie możliwość przejścia do komponentu (pole option) czyli com_aukcje i widoku (pole view) - potwierdzwycofanie
Nie musisz wtedy pisać w formularzu w action adresu gdzie przesyłasz dane
Mówię oczywiście o metodzie post czyli nie widać danych przesyłanych