TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[PHP i formularze] Przenoszenie wartości w adresie adresu , majek 28/02/07 21:24 Robię pewną ankietę opartą na MySQL, która będzie wypełniana przez jedną osobą kilka razy - tzn. pierwsze kilka pytań jest niezmienne, dopiero od 5 pytania dane się będą zmieniać. Zrobiłem wiec, ze po zmianie w sekcji select, wyswietlan odpowiednia zawartosc (reszte pytan) w zaleznosci od wybranej opcji. Ale jak wiadomo, strona się przy tym odswieza. Jak wiec przeniesc dane jako zmienne w adresie? Przy wpisywaniu do bazy, poprostu ustawiam zmienne submitem. Jak bez submit ustawić zmienną, żeby ją pozniej przeslac?
... ale jak to?!
- adresie adresu , majek 28/02/07 21:25
;)) szybszy kilk niż myslenie ;)
... ale jak to?!
- Po pierwsze , Wedrowiec 28/02/07 22:03
nie musi się przeładowywać. Wyświetl po prostu odpowiednią warstwę.
Po drugie wszystko możesz zapamiętywać na sesji i na końcu dopisać wynik do bazy.
A co do przekazywania - action formularza daj na GET, przekazane z wcześniejszych stron wartości dodaj do formularza jako pola hidden, do bazy dopisz wynik ostatniego (tzn z ostatniego możliwego pytania) submita."Widziałem podręczniki
Gdzie jest czarno na białym
Że jesteście po**bani" - więc , john565 28/02/07 22:08
wg mnie to że przenosisz to w adresie adresu :] to może być trche nieładnie i problematycznie,
ja proponuje przensic do kolejnych podstron ankiety dane w postaci pól typu hidden
powiedzmy że na stronce są trzy pola tekstowe
po wysłaniu formularza do strony numer 2 ankiety skrypt php twożył by w formularzu pole
<input type=hidden name=odpowiedzi value="tekstpola1|tekstpola2|tekstpola3">
przy przejściu do strony trzeciej tworzył byś obiekt 'odpowiedzi2' lub mógłbyś dopisać do odpowiedzi1 zawartośc kolejnych pól
<input type=hidden name=odpowiedzi value="tekstpola1|tekstpola2|tekstpola3|tekstpola1s2|tekstpola2s2|tekstpola3s2">
trochę zakręciłem ale mam nadziej że załapiesz o co mi chodziło :]f*ck - Proste... , pachura 28/02/07 23:13
Niech Twój formularz zawiera wszystkie możliwe pytanie, ale wstępnie ukryte. Po zmianie <SELECT-a>, niech JavaScript "odkryje" właściwy zestaw...
<div id="alternatywa1" style="display: none;">
Pytania 5-100 dla alternatywy 1
</div>
<div id="alternatywa2" style="display: none;">
Pytania 5-100 dla alternatywy 2
</div>
<div id="alternatywa3" style="display: none;">
Pytania 5-100 dla alternatywy 3
</div>
<input type="button" value="Pokaz 2" onClick="document.getElementById('alternatywa2').style.display = '';">
W ten sposób nie musisz się bawić w żadne dodatkowe przesyły do/z serwera. Wady rozwiązania są 3:
- wymaga JavaScriptu (99% ludzi ma włączony, spoko)
- NAME="" dla różnych odpowiedzi w ramach różnych alternatyw powinno być raczej unikalne (spoko)
- jeśli pytań dla wszystkich alternatyw jest za dużo, użytkownik będzie musiał ściągnąć HTML-a dużych rozmiarów (raczej spoko, można włączyć gzipa)- ciekawe , majek 28/02/07 23:34
nie znałem takiego sposobu. Spoko;)
Pamiętam, że kiedys mialem problem z ladowaniem podstron tak zeby nie przeladowywac flasha (obrot panoramicznego zdjecia) rozwiazalem to w troche inny...niedzentelmenski sposob - frames ;))
Pewnie to Twoje by tez dalo rade
... ale jak to?!
- zapoznaj sie z ajaxem , wukillah 1/03/07 09:06
i zmieniaj dynamicznie formularz bez odswiezania strony.just d'oh it! - Bez sensu , pachura 1/03/07 10:27
AJAX wprowadza mnostwo komplikacji. Trzeba sie dobrze znac na programowaniu WWW (zarowno server-, jak i clientside) zeby napisac sprawnie dzialajaca aplikacje AJAX-owa, odporna na bledy w komunikacji z serwerem etc. Wydaje mi sie ze w tym przypadku zaproponowane przeze mnie podejscie (rozne wersje formularza na ukrytych warstwach) jest prostsze i lepsze. - przerost formy nad treścią , john565 1/03/07 15:56
to chyba za skomplikowane jak na takie rozwiązanie nie sądzisz ?f*ck - czy ja wiem? , wukillah 1/03/07 16:15
nie jest to zbyt skomplikowane.just d'oh it!
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|