Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Fallout
Poległem.. nie wiem kompletnie jak mam się do tego zabrać:

  1. <html>
  2. <head>
  3. </head>
  4. <script>
  5. function sprawdz_ile_zaznaczonych(){
  6. var ile = 0;
  7.  
  8.  
  9. for(var j=0;j<document.forms.length; j++){
  10. for(var i=0; i<document.forms[j].length; i++){
  11. if((document.forms[j].elements[i].type)=="checkbox"){
  12. if(document.forms[j].elements[i].checked) ile++;
  13. }
  14. }
  15. }
  16. return ile;
  17. }
  18.  
  19. function deaktywacja(){
  20. if(sprawdz_ile_zaznaczonych()>=2){
  21. for(var j=0;j<document.forms.length; j++){
  22. for(var i=0; i<document.forms[j].length; i++){
  23. if((document.forms[j].elements[i].type)=="checkbox"){
  24. if(!document.forms[j].elements[i].checked)
  25. document.forms[j].elements[i].disabled=true;
  26. }
  27. }
  28. }
  29. }
  30. else{
  31. for(var j=0;j<document.forms.length; j++){
  32. for(var i=0; i<document.forms[j].length; i++){
  33. if((document.forms[j].elements[i].type)=="checkbox")
  34. document.forms[j].elements[i].disabled=false;
  35. }
  36. }
  37. }
  38.  
  39. }
  40.  
  41. </script>
  42. <body>
  43. <?
  44. require 'resize.inc.php';
  45. if(isset($_GET['gid'])) $galeria=(int)$_GET['gid']; else $galeria=0;
  46. if(isset($_GET['pid'])) $pies=(int)$_GET['pid']; else $pies=0;
  47. ?>
  48. <form action="?co=zarzadzaj" method="get">
  49. <input type="hidden" value="zarzadzaj" name="co" />
  50. <table align="center">
  51. <tr>
  52. <td align="center">
  53. Wskaż galerię:&nbsp;
  54. <? SelectBox(TR_Box('galeria_id', 'galeria_katalog','galerie'),'gid',$galeria); ?>
  55. </td>
  56.  
  57. <td align="center">
  58. Wskaż psa:&nbsp;
  59. <? SelectBox(TR_Box('pies_id', 'pies_nazwa', 'psy'),'pid',$pies); ?>
  60. </td>
  61.  
  62. <td align="center">
  63. <input type="submit" value="Zarządzaj" />
  64. </td>
  65. </tr>
  66. </table>
  67. </form>
  68. <hr color="black" />
  69. <?
  70. $db = new dbengine();
  71.  
  72. // wykonanie akcjii
  73.  
  74. if(isset($_POST['do']))
  75. {
  76.  
  77. $gid = (int)$_GET['gid'];
  78. $pid = (int)$_GET['pid'];
  79.  
  80. switch($_POST['do'])
  81. {
  82. (...)
  83.  
  84. case 'zamien':
  85. {
  86. // tutaj ma pobrac z posta $_POST['chg']
  87. // id ktore maja byc 'zamienione'
  88. }
  89. break;
  90. }
  91. }
  92.  
  93. // wyswietlenie tabeli
  94.  
  95. if(isset($_GET['gid'])and(isset($_GET['pid']))) 
  96. {
  97. $gid = $_GET['gid'];
  98. $pid = $_GET['pid'];
  99. $sql = "SELECT * FROM zdjecia WHERE galeria_id = $gid AND pies_id = $pid";
  100. $db->Polacz();
  101. $db->DoSql($sql);
  102. $w = $db->wynik;
  103. ?>
  104. <table align="center" width="100%" border="0">
  105. <tr align="center">
  106. <th>Czyje<br/>zdjęcie</th>
  107. <th>Podgląd<br/>Zdjęcia</th>
  108. <th>Zamień<br/>Zdjęcia</th>
  109. <th>Opis<br/>zdjęcia</th>
  110. <th>Plik<br/>zdjęcia</th>
  111. <th>Galeria</th>
  112. <th>Generuj<br/>miniaturę</th>
  113. <th>Skasuj<br/>miniaturę</th>
  114. <th>Zmień<br/>dane?</th>
  115. <th>Usuń<br/>zdjęcie?</th>
  116. </tr>
  117. <?
  118. while($r = mysql_fetch_array($w))
  119. {
  120. (...)
  121.  
  122.  
  123. $zmien  = '<input type="image" src="zmien.gif" name="do" value="zmien" ALT="Zmień dane zdjęcia" />';
  124. $usun = '<input type="image" src="del.gif" name="do" value="usun" ALT="Usuń zdjęcie" />';
  125. $gen = '<input type="image" src="generate.gif" name="do" value="generuj" ALT="Generuj miniatruę" />';
  126. $delmin = '<input type="image" src="del.gif" name="do" value="skasuj" ALT="Skasuj miniaturę" />';
  127. ?>
  128. <!-- Formularz START -->
  129. <form action="<?='?co=zarzadzaj&amp;gid='.$gid.'&amp;pid='.$pid; ?>" method="post" name="formularz">
  130. <input type="hidden" value="<?=$fid;?>" name="zid" />
  131. <input type="hidden" value="<?=$gid;?>" name="gid" />
  132. <tr align="center">
  133. <td><? SelectBox(TR_Box('pies_id','pies_nazwa','psy'),'npid',$pid); ?></td>
  134. <td><?=$fotka;?></td>
  135. <td><input type="checkbox" value="<?=$fid;?>" name="chg[]" onclick="deaktywacja();" /></td>
  136. <td><input type="text" value="<?=$ops;?>" name="opis" /></td>
  137. <td><input type="text" value="<?=$plk;?>" name="plik" readonly /></td>
  138. <td><? SelectBox(TR_Box('galeria_id','galeria_katalog','galerie'),'ngid',$gid); ?></td>
  139. <td><? if(!file_exists($mini)) echo $gen;?></td>
  140. <td><? if(file_exists($mini)) echo $delmin;?></td>
  141. <td><?=$zmien;?></td>
  142. <td><?=$usun;?></td>
  143. </tr>
  144. </form>
  145. <!-- Formularz Koniec -->
  146. <?
  147. }
  148. echo '</table>';
  149. }
  150. ?>
  151. </body>
  152. </html>


jak widac jest petla while i kazdy wiersz jest osobnym formularzem,
nie wiem za to jak mam zrobic aby osobny
  1. <input type="button" src="zmien.gif" name="do" value="zamien" alt="zamien zdjecia"/>


ktory by wysylal postem zaznaczone checkboxy. Sprawa jest skomplikowana gdyz jak juz pisalem kazdy wiersz jest osobnym formularzem...

Chcialem zrobic formularz nadrzedny ale chyba tak nie mozna :/

macie jakiś pomysł bo ja już kompletnie zgłupiałem smile.gif

pozdrawiam
Zajec
Chodzi o to, żeby każdy button zmieniający zbierał checkboxy ze swojego oraz innych formularzy i je wysyłał?
Fallout
Cytat(Zajec @ 2006-04-03 06:10:24)
Chodzi o to, żeby każdy button zmieniający zbierał checkboxy ze swojego oraz innych formularzy i je wysyłał?

Wyobraz sobie np. tabelke z 20 wierszami,
kazdy wiersz to osobny formularz,
kazdy wiersz ma checkbox,

pod ta tabelka istnieje przycisk
ktory zbiera wszystkie te checkboxy ktore sa zaznaczone i przesyla
je np $_POST smile.gif

jasniej nie potrafie smile.gif

pozdrawiam
nospor
A czemu kazdy wiersz musi byc osobnym formularzem? przeciez moze byc jeden formularz, w nim 20 wierszy. po wyslaniu formularza, zostaną wyslane tylko zaznaczone checkboxy
Fallout
Cytat(nospor @ 2006-04-03 20:13:17)
A czemu kazdy wiersz musi byc osobnym formularzem? przeciez moze byc jeden formularz, w nim 20 wierszy. po wyslaniu formularza, zostaną wyslane tylko zaznaczone checkboxy

ehh, no ale proszę spojrzeć na kod smile.gif

każdy wiersz to osobny formularz, a to dlatego, że dla każdego wiersza
można zmienić dane ($zmien), usunąć wiersz ($usun) wygenerować lub skasować miniaturke ($gen i $delmin)
  1. <?php
  2.  
  3. $zmien  = '<input type="image" src="zmien.gif" name="do" value="zmien" ALT="Zmień dane zdjęcia" />';
  4. $usun = '<input type="image" src="del.gif" name="do" value="usun" ALT="Usuń zdjęcie" />';
  5. $gen = '<input type="image" src="generate.gif" name="do" value="generuj" ALT="Generuj miniatruę" />';
  6. $delmin = '<input type="image" src="del.gif" name="do" value="skasuj" ALT="Skasuj miniaturę" />';
  7.  
  8. ?>


(swoją drogą wywale to poza pętle teraz zauważyłem smile.gif )

a mi chodzi o przycisk który dla całej wygenerowanej tabeli
pobierał checkboxy

  1. <td><input type="checkbox" value="<?=$fid;?>" name="chg[]" onclick="deaktywacja();" /></td>


nie da sie jakoś tego wyłapać?? może za pomocą JS??

btw za pierwszym razem gdy chiałem wysłać posta wyskoczyło mi:
Kod
Parse error: parse error, unexpected $ in /home/forum/forum/sources/lib/post_parser.php on line 544

po powrocie na stronę, przycisk "wyślij był nie aktywny, dopiero po użyciu "podgląd posta" dało radę wysłać??
nospor
Cytat
ehh, no ale proszę spojrzeć na kod
ehh, ale ja zazwyczaj patrze na to, na co odpowiadam winksmiley.jpg

walisz jeden formularz, w nim 20 checkbocow, a na koncu formularza podajesz te 4 przyciski z akcją. Zmien tylko name dla tych przyciskow na jednoznaczną dla danego przycisku. np, ...name="zmien", name="del" itd.
Gdy przycisniesz ktorys z obrazkow akcji, zostanie wyslany formularz z miedzy innymi takim polem nazwaprzycisku_x czyli np: zmien_x
Pojawi sie to _x, gdyz widze ze zamieniles te submity na submity obrazkowe.
Teraz tylko sprawdzasz issetem, ktory przycik sie pojawil i juz wiesz jaka akcja.

Dla checkoboxow nadaj tę samą nazwę tablicową czyli z [], np. name="ch[]"
po wyslaniu formularza, dostaniesz tablicę wcisnietych checkboxow (lub nic, gdy nic nie zaznaczysz): $_POST['ch'].

Proste smile.gif
Zajec
U siebie załatwiam takie sprawy przez
  1. $zmien = '<input type="image" src="zmien.gif" name="do" value="zmien" ALT="Zmień dane zdjęcia" />';
  2. $usun = '<input type="image" src="del.gif" name="do" value="usun" ALT="Usuń zdjęcie" />';
  3. $gen = '<input type="image" src="generate.gif" name="do" value="generuj" ALT="Generuj miniatruę" />';
  4. $delmin = '<input type="image" src="del.gif" name="do" value="skasuj" ALT="Skasuj miniaturę" />';
  5.  
  6. <form action="<?='?co=zarzadzaj&amp;gid='.$gid.'&amp;pid='.$pid; ?>" method="post" name="formularz">
  7. <table>
  8.  
  9. while($r = mysql_fetch_array($w))
  10. {
  11. ?>
  12. <tr align="center">
  13.  
  14. <td><input type="hidden" value="<?=$fid;?>" name="<?=$r;?>-zid" /><input type="hidden" value="<?=$gid;?>" name="<?=$r;?>-gid" /></td>
  15. <td><? SelectBox(TR_Box('pies_id','pies_nazwa','psy'),'npid',$pid); ?></td>
  16. <td><?=$fotka;?></td>
  17. <td><input type="checkbox" value="<?=$fid;?>" name="<?=$r;?>-chg[]" onclick="deaktywacja();" /></td>
  18. <td><input type="text" value="<?=$ops;?>" name="<?=$r;?>-opis" /></td>
  19. <td><input type="text" value="<?=$plk;?>" name="<?=$r;?>-plik" readonly /></td>
  20. <td><? SelectBox(TR_Box('galeria_id','galeria_katalog','galerie'),'ngid',$gid); ?></td>
  21. <td><? if(!file_exists($mini)) echo $gen;?></td>
  22. <td><? if(file_exists($mini)) echo $delmin;?></td>
  23. <td><?=$zmien;?></td>
  24. <td><?=$usun;?></td>
  25.  
  26. </tr>
  27. <?
  28. }
  29.  
  30. </table>
  31. </form>
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.