Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Zagnieżdżanie formularzy - jak zastąpić?
Forum PHP.pl > Forum > Przedszkole
niedzielnyphp
Mam potrzebe zagnieżdżenia formularzy. Znalazłem wiele tematów jednak tam wszędzie dane są przesyłane do tego samego pliku. Niestety ja muszę wysyłać do oddzielnych. Mniej więcej coś takiego:
  1. <form action="usun.php" method="post">
  2. <form action="dodaj.php" method="post">
  3. <input type="submit" value="Dodaj" />
  4. </form>
  5. <input type="submit" value="Usuń" />
  6. </form>


Wiem, że to nie będzie działało ale jak rowiązać problem? Gdyby to wysyłało się do jednego pliku nie byłoby problemu, ale ten przypadek nie za bardzo wiem jak rozwiązać.
XP'ek
nie słyszałem by można było robić formularz w formularzu albo dwa osobne .. ale napisz co chcesz zrobić do czego ma to służyć ?
krzysztof_kf
Zagnieżdżanie formularzy nie jest najlepszym pomysłem bo jak to coś ma się zachować ?
niedzielnyphp
Wiem, że nie można tak zrobić jak przedstawiłem ale czuje ze jest jakis sposób ominięcia tego.

Jeszcze raz może wstawie dokładnie jak to ma wyglądać
  1. <form action="usun.php" method="post">
  2.  
  3. // Tabela z checkboxami, zaznaczasz np. 5 elementów i klikasz Usuń
  4.  
  5. <tr><td>
  6. <form action="dodaj.php" method="post">
  7. <input type="submit" value="Dodaj" />
  8. </form>
  9. </td>
  10. <td>
  11. <input type="submit" value="Usuń" />
  12. </form>
  13. </td></tr></table>
  14.  


Rozwiązaniem jest jedynie zrobienie zamiast checkboxa w każdym wierszu przycisku Usuń, wtedy zagnieżdżenia by nie było. Ale wolałbym móc usunąć kilka elementów za jedym razem. No i te nieszczęsne Dodaj ma być w tym samym wierszu i wcześniej niż Usuń dlatego dochodzi do zagnieżdżenia.
XP'ek
to nie lepiej przycisk dać i if usun i dalej ? pociągnąć w ten sposób że jeśli masz zaznaczone to kasuje zaznaczone ?
niedzielnyphp
Cytat(XP'ek @ 1.08.2010, 12:31:30 ) *
to nie lepiej przycisk dać i if usun i dalej ? pociągnąć w ten sposób że jeśli masz zaznaczone to kasuje zaznaczone ?


Jakbyś mógł wytłumaczyć na przykładzie co dałem - bo niestety nie rozumiem jak to zrobić. Na co dam tego if'a? Musze wyświetlić przyciski więc nie za bardzo wiem na co if.
XP'ek
chodzi mi zastosowanie if'a na zasadzie że jeśli klikasz przycisk usuń to on sprawdzał wartość chek'a dla wartości 1 kasuje dla zero pozostawia wtedy zrobić masowe usuwanie
niedzielnyphp
A powiem szczerze, że kompletnie nie rozumiem. Po to właśnie mam ten form ze jak zostanie zaznaczy checkbox i kliknę usuń to zostanie wysłane do usun.php i usunie z bazy dane rekordy. Tylko ze musze mieć też tam form z dodawaniem i nie wiem na co if'a mam dać. Pokaż to na przykładzie bo chyba nie możemy się zrozumieć.
hondek
  1. <form action="dodaj.php" method="post">
  2. <input type="submit" value="Dodaj" />
  3. </form>
  4. <form action="usun.php" method="post">
  5. <input type="submit" value="Usuń" />
  6. </form>


smile.gif
niedzielnyphp
@hondek

Przedstawiałem już jak ma to wyglądać.
Tak jak pokazałeś bym musiał mieć przycisk Dodaj nad tabelą.

Ma być to tabela
  1. --------------------------------
  2. | | checkbox |
  3. --------------------------------
  4. | | checkbox |
  5. --------------------------------
  6. |[tu tekst] DODAJ | USUŃ |
  7. -------------------------------

Dochodzi wtedy do zagnieżdżenia. Przycisku dodaj nie mogę przesunąć przed tabelę.

Mam już rozwiązanie.

Zamiast dodaj.php i usuń.php zrobiłem modyfikuj.php. Gdy tekst do dodania jest pusty i klikniemy usuń to usuwa. Gdy tekst do dodania jest dłuższy niż tam określona ilość i klikniemy dodaj to dodaje. Został mi tylko problem z tym, że wpiszemy w tekst coś i klikniemy usuń to niestety dodaje.

Da się jakoś rozróżnić który przycisk został kliknięty?
hondek
  1. <input type="hidden" name="click" value="usun" />
gorden
Cytat
Da się jakoś rozróżnić który przycisk został kliknięty?

no da się. wystarczy że zrobisz warunek i nadasz name dla submitów tongue.gif

  1. <form action="modyfikuj.php" method="post">
  2. <input type="checkbox" name="1" value="1"> <!--czy jak tam chcesz-->
  3. <input type="checkbox" name="1" value="2"> <!--jw-->
  4.  
  5. <input type="submit" name="submit_dodaj" value="DODAJ"><input type="submit" name="submit_usun" value="USUN">
  6. </form>


  1. if(isset($_POST['submit_dodaj'])) {
  2. //tutaj kod, który chcesz wykonać do dodania
  3. }
  4. if(isset($_POST['submit_usun'])) {
  5. //tutaj kod, który chcesz wykonać do usunięcia
  6. }


o to chodzi?
niedzielnyphp
Dzięki. Dokładnie o to chodziło.
Rufin
Witam.
Mam podobny problem co kolega.
Ale dokładnie chodzi oto, że potrzebuję zapisać część formularza w innym miejscu.Formularz poglądowo wygląda tak:
<form......>
<fieldset>
jakieś dane...
</fieldset>

część 1
zestaw róznych pól

część 2
zestaw róznych pól

<fieldset>
jakieś dane...
</fieldset>

</form>

Jakich znaczników użyć aby rozgraniczyć część 1 i 2?
Chodzi oto żeby potem mozna było np. w php sprawdzić:
if( isset( czesc1 ) )
zapisz tu
if( isset( czesc2 ) )
zapisz gdzie indziej

Formularze są generowane dynamicznie, i gdy jest wygenerowana "część" 2 razy tak jak podałem w przykładzie to pola się dublują..
Z góry dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.