Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: checkboxy
Forum PHP.pl > Forum > PHP
sbogdi
witam
na stronie tworze tyle chceckboxow ile mam userow w bazie

  1. .....
  2. $i=0;
  3. while($wyn = mysql_fetch_array($w,MYSQL_ASSOC))
  4. {
  5. echo '<tr><td><b>' . $wyn[ 'imie' ] . '</b>';
  6. echo  '<br><b>' .$wyn[ 'nazwisko' ] . '</b></td></tr>';
  7. ?>
  8. <tr>
  9. <td align=right>Oznacz ktoregos</td><td> <br>
  10. <input type='checkbox' name='student_id<? $i?>' ></td>
  11. </tr>
  12. <br>
  13. <? 
  14. $i++;
  15. }
  16. ....


nie wiem czy to jest dobrze

ale wiekszy problem jak odebrac te dane w zaleznosci od zaznaczonego chceckboxa (moze byc zaznaczone wiecej niz jeden)

jakies pomysly??

mozecie tez zobaczyc moj drugi problem troszke mylny temat postu ale chodzi o 2 pytanie Moj post

pozdrawiam
nospor
nadaj dla checkboxa nazwe tablicową oraz value będące id tego studenta. Formularzem zostaną przeslane tylko zaznaczone checkboxy.

  1. <?php
  2.  
  3. echo "<input type='checkbox' name='student_id[] value='$idStudenta' >";
  4.  
  5. ?>


a otrzymujesz tablice lub nic, jesli nic nie zaznaczono:
  1. <?php
  2.  
  3. if (isset($_POST['student_id']))
  4. print_r($_POST['student_id']);
  5.  
  6. ?>
sbogdi
Przy tym kodzie
  1. <form action= "wstawo.php" method=post>
  2. <?
  3. echo '<TABLE BORDER CELLSPACING=5 CELLPADDING=15 BORDERCOLOR=Maroon BGCOLOR=Silver> ';
  4. while($wyn = mysql_fetch_array($w,MYSQL_ASSOC))
  5. {
  6. echo '<tr><td><b>' . $wyn[ 'imie' ] . '</b>';
  7. echo  '<br><b>' .$wyn[ 'nazwisko' ] . '</b></td></tr>';
  8. ?>
  9. <tr>
  10. <td align=right>Oznacz ktoremu ze studentow <br> chcesz wstawic ocene</td><td> <br>
  11. <? echo "<input type='checkbox' name='student_id[] value='$student_id' >"; ?>
  12. </tr>
  13. <br>
  14. <tr>
  15. <td align=right>Wstaw ocene</td><td> <br>
  16. <? echo "<input type='text' name='ocena[] >"; ?>
  17. </tr>
  18. <? 
  19. }
  20. echo '</table>';
  21. ?>
  22. }


wypisuje mi to Array ( [0] => on [1] => on ) a oceny wogole mi nie wstawia
ooczywiscie moze to byc problem odbioru
co bys zaproponowal na odbior oceny i studenta_id (chcialbym zeby student_id byl powiazany z nazwiskiem i imieniem ktore jest wyswietlane na stronie)
nospor
zjadles ', a raczej ja zjadlem w poprzednim kodzie smile.gif
  1. <?php
  2. echo "<input type='checkbox' name='student_id[]' value='$student_id' >";
  3. ?>
pozatym nie widze bys gdzies inicjowal $student_id

podobnie z oceną
  1. <?php
  2. echo "<input type='text' name='ocena[]' >";
  3. ?>


edit:
Cytat
co bys zaproponowal na odbior oceny i studenta_id (chcialbym zeby student_id byl powiazany z nazwiskiem i imieniem ktore jest wyswietlane na stronie)
Dodaj jeszcze pole ukryte po nazwisku, ktorego wartością bedzie student_id
sbogdi
  1. <form action= "wstawo.php" method=post>
  2. <?
  3. $student_id=0;
  4. echo '<TABLE BORDER CELLSPACING=5 CELLPADDING=15 BORDERCOLOR=Maroon BGCOLOR=Silver> ';
  5. while($wyn = mysql_fetch_array($w,MYSQL_ASSOC))
  6. {
  7.  
  8. echo '<tr><td><b>' . $wyn[ 'imie' ] . '</b>';
  9. echo  '<br><b>' .$wyn[ 'nazwisko' ] . '</b></td></tr>';
  10. echo "<input type='hidden' name='w' value='$student_id' >";
  11. $student_id++
  12. ?>
  13. <tr>
  14. <td align=right>Oznacz ktoremu ze studentow <br> chcesz wstawic ocene</td><td> <br>
  15. <? echo "<input type='checkbox' name='student_id[]' value='$student_id' >"; ?>
  16.  
  17.  
  18. </tr>
  19. <br>
  20. <tr>
  21. <td align=right>Wstaw ocene</td><td> <br>
  22. <? echo "<input type='text' name='ocena[]' >"; ?>
  23. </tr>
  24. <? 
  25. }
  26. echo '</table>';
  27. ?>


teraz tak wyglada formularz tylko nie wiem jak zrobic odbior zeby hidden=imie,nazwisko (bo w tabeli student identyfikowany jest po student_id nie po imieniu i nazwisku )
nospor
hmmm, spobujmy inaczej.
Rozumiem że chcesz wiedziec, który input z oceną dotyczy jakiego studenta?
A więc:
Nadaj dla inputa z oceną takie name: ocena_$student_id
  1. <?php
  2. echo "<input type='text' name='ocena_$student_id' >";
  3. ?>

Teraz przy odbieraniu checkboxow, bedziesz mial id studenta. zeby pobrac dla niego ocenę wystarczy napisac:
  1. <?php
  2.  
  3. //$idStudent - id pobrane z value checkboxa przeslanego
  4. echo 'Ocena dla studenta o id:'.$idStudent.' to:'.$_POST['ocena_'.$idStudent].'<br />';
  5.  
  6. ?>
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.