Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz w formularzu, ale inaczej :)
Fallout
post 3.04.2006, 01:03:23
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


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


--------------------
Go to the top of the page
+Quote Post
Zajec
post 3.04.2006, 06:10:24
Post #2





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Chodzi o to, żeby każdy button zmieniający zbierał checkboxy ze swojego oraz innych formularzy i je wysyłał?
Go to the top of the page
+Quote Post
Fallout
post 3.04.2006, 20:08:28
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


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

Ten post edytował Fallout 3.04.2006, 20:11:57


--------------------
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 20:13:17
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Fallout
post 3.04.2006, 21:49:50
Post #5





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


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ć??

Ten post edytował Fallout 3.04.2006, 21:51:01


--------------------
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 22:03:09
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Zajec
post 4.04.2006, 06:13:56
Post #7





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


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>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 07:54