Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Ukrywanie pól formularza, nieznana ilość.
kóki
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 9.08.2010

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


Witam.

Piszę stronę oparta o bazę danych (MySQL). Mam problem, którego obejście jest zapewne banalnie proste, ale samotne rozwiązanie go (z pomocą googli) nie przyniosło oczekiwanych rezultatów, więc piszę tutaj, z nadzieją , że ktoś z dobroci serca pomoże mi znaleźć rozwiązanie.

Problem wygląda następująco. Na podstawie danych pobieranych z bazy danych tworzę formularz (typu checkbox). Chciałbym aby, po zaznaczeniu jednego z pól, pojawiało się ukryte i zablokowane dotychczas pole tekstowe. Problem polega na tym, że nie znam dokładnej ilości pól, bo jest ona zależne od ilości wpisów w bazie danych a przy wykonywaniu operacji pokroju :

  1. <input type="checkbox" name="nazwa" value="wartość" onclick="document.getElementById('identyfikator').style.display = this.checked ? 'none' : 'block'; this.form.elements['nazwa2'].disabled = this.form.elements['nazwa3'].disabled = this.checked" />
  2. <div id="identyfikator">
  3. <input type="text" name="nazwa2" />
  4. <input type="text" name="nazwa3" />
  5. </div>

(zaczerpnięte z http://www.kurshtml.boo.pl/html/pole_wyboru,formularze.html)

musiałbym wymieniać po znaku równości wszystkie blokowane pola tekstowe. Czy da się to obejść? Mam problemy z mieszaniem kody html z kodem php i może istnieje jakieś rozwiązanie, którego po prostu jak na razie nie znam?

Próbowałem zastąpić wszystkie nazwy, nazwą[]. Próbowałem też robić pętlę z iterowaną zmienną $a, zastępując nazwy nazwą[$a]. Zmieniałem też cudzysłowia na \" \" i ' '. Niestety bez oczekiwanych rezultatów.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kóki
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 9.08.2010

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


beamer, dziękuję, trochę mi pomogłeś. Niestety nadal mam drobne problemy z wkomponowaniem tego w mój skrypt.
  1. <?php
  2. //TUTAJ SPRAWDZAM CZY USER MA UPRAWNIENIA DO WYSłANIA TEGO FORMULARZA
  3. echo "<form action=\"?\" method=\"post\" onsubmit=\"return confirm('Potwierdz')\">";
  4. for($a=0 ; $a<$ilosc_pozycji_w_bazie_danych ; $a++){
  5. echo "<input type=\"checkbox\" name=przykladowa_nazwa[] value=\"$a\" onclick=\"document.getElementById(\'identyfikator\'.$a.'\').style.display = this.checked ? 'block' : 'none'; ";
  6. echo 'this.form.elements[\'nazwa'.$a.'\'].disabled = ';
  7. echo ' this.checked" />';
  8. //W TYM MIEJSCU POBIERAM I WYPISUJĘ DANE Z BAZY DANYCH Z LIMITEM a
  9. echo "<div id=\'identyfikator\'.$a.'\' >";
  10. echo "<input type=\"text\" name=\'nazwa'.$a.'\' />";
  11. echo "</div>";
  12. }
  13. echo "<br><br><input type=submit value=\"wyslij\"/>";
  14. echo "</form>";
  15. ?>

Kiedy zamiast \'identyfikator\'.$a.'\' wpisywałem 'identyfikator' to niby działało, ale chowane i pokazywane było tylko pierwsze z pól tekstowych (pokazywało się ono niezależnie od tego, którą z pozycji wybierałem w formularzu).
Przy \'identyfikator\'.$a.'\' nie jest chowane żadne z pól.

matematyk, na razie nie potrafię się posługiwać JS. Na oko widzę, że jest to język w miarę podobny do c++, ale to raczej nie jest wystarczająca wiedza, bym potrafiłł dostosować Twój kod do własnych potrzeb (IMG:style_emoticons/default/sad.gif) . Tak czy owak dziękuję.

EDIT: Dobra, jeszcze raz dziękuję. Kod jest poprawny. Wystarczyło zmienić \'identyfikator\'.$a.'\' na 'identyfikator$a' oraz \'nazwa'.$a.'\' na 'nazwa$a'. Pozdrawiam (IMG:style_emoticons/default/smile.gif) .

Ten post edytował kóki 10.08.2010, 15:39:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 22:49