Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]tablica w checkbox
krzysiek_raven
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 28.09.2007

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


Witam

Mam problem z odebraniem tablicy która jest w polu checkbox.

Mam taki formularz w którym w pętli tworzone są chcekboxy z wartościami:
  1. <?php
  2. echo('<form action="index.php?op=art&amp;co=usun&amp;action=usunWybArt" method="post">
  3. <table id="tabForm">
  4. <tr><th>Zaznacz</th><th>Tytuł i informacje</th></tr>');
  5. while ($tab = mysql_fetch_array($query, MYSQL_BOTH)){
  6. echo('<tr>
  7. <td>
  8. <input type="checkbox" name="wpis[]" value="'.$tab['artID'].'" />
  9. </td>
  10. <td>'.$tab['tytul'].'</td>
  11. </tr>');
  12. }
  13. echo('<tr>
  14. <td colspan="2"><input id="wyslijBT" type="submit" value="OK"></td>
  15. </tr>
  16. </table>
  17. </form>');
  18. ?>


Później chcę odebrać tablicę i np. wyświetlić co jest w środku:

  1. <?php
  2. if (isset($_POST['wpis'])){
  3. $i = 0;
  4. $tab = $_POST['wpis'];
  5. while ($test = $tab[$i]){
  6. echo('<br>artID: '.$test);
  7. $i++;
  8. }
  9. }
  10. ?>


A w środku pokazuje mi się napis Array. Robiłem już wiele razy to przesyłanie tablicy w chceckboxach i wszystko zawsze działało. Siedze już chyba 3 godziny i nie moge znaleźć błędu:/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzysiek_raven
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 28.09.2007

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


Raczej nie. Całość działa mniej więcej w ten sposób:

  1. <?php
  2. function zaznaczArt($katArtID){
  3. $query = mysql_query("select artID, tytul, typArt, glownyArt, video from artykuly 
  4. where katArtID = '$katArtID'
  5. order by artID desc");
  6. if (!$query)
  7. echo('Błąd podczas pobierania artykułów');
  8. else{
  9. echo('<form action="index.php?op=art&amp;co=usun&amp;action=usunWybArt" method="post">
  10. <table id="tabForm">
  11. <tr><th>Zaznacz</th><th>Tytuł i informacje</th></tr>');
  12. while ($tab = mysql_fetch_array($query, MYSQL_BOTH)){
  13. echo('<tr>
  14. <td>
  15. <input type="checkbox" name="wpis[]" value="'.$tab['artID'].'" />
  16. </td>
  17. <td>'.$tab['tytul'].'</td>
  18. </tr>');
  19. }
  20. echo('<tr>
  21. <td colspan="2"><input id="wyslijBT" type="submit" value="OK"></td>
  22. </tr>
  23. </table>
  24. </form>');
  25. }
  26. }
  27.  
  28.  
  29.  
  30.  
  31. if ($co == 'usun'){
  32. echo('
  33. <h1 class="txt2">
  34. :: Usuwanie artykułu/linka
  35. </h1>
  36. ');
  37. $action = $_GET['action'];
  38. if (!$action){
  39. echo('<br/>
  40. <div class="info2">
  41. <p>Wybierz kategorię z artykułami/linkami.</p>
  42. </div>
  43. ');
  44. wybKat('usun');
  45. }
  46. if ($action == 'zaznaczArt'){
  47. echo('<br/>
  48. <div class="info2">
  49. <p>Zaznacz artykuły do usunięcia.</p>
  50. </div>
  51. ');
  52. echo('
  53. <div class="info">
  54. <p>Uwaga! Usunięcie nastąpi odrazu po kliknięciu przycisku OK, bez możliwości odwrócenia operacji.</p>
  55. </div>
  56. ');
  57. $katArtID = $_GET['katArtID'];
  58. if (is_numeric($katArtID)){
  59. zaznaczArt($katArtID);
  60. }
  61. }
  62. if ($action == 'usunWybArt'){
  63. if (isset($_POST['wpis'])){
  64. $i = 0;
  65. $tab = $_POST['wpis'];
  66. var_dump($_POST);
  67. while ($test = $tab[$i]){
  68. echo('ID: '.$test);
  69. $i++;
  70. }
  71. /* $test = usunWybArt($_POST['wpis']);
  72. echo('
  73. <div class="info">
  74. <p>Operacja zakończona.<br /><strong>Raport:</strong><br />
  75. Usuniete Artykuły:'.$test['usuniete'].'<br/>Nieusuniete Zdj:'.$test['nieusuniete'].'</p>
  76. </div>
  77. '); */
  78. }
  79. }
  80. }
  81. ?>


Nazwy tablicy też już zmieniałem i ciągle to samo. Może cały plik już za dużo zajmuje? Ma już ponad 1100 linijek, nie wiem czy ma to jakieś znaczenie:P

Ten post edytował krzysiek_raven 20.08.2008, 15:39:10
Go to the top of the page
+Quote Post
JoShiMa
post
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(krzysiek_raven @ 20.08.2008, 16:36:59 ) *
Może cały plik już za dużo zajmuje? Ma już ponad 1100 linijek, nie wiem czy ma to jakieś znaczenie:P

Nie ma, chociaż dla porządku powinieneś to podzielić na mniejsze pliki.

Spróbuj sprawdzić wartość var_dump($_POST['wpis']) przed if (isset($_POST['wpis'])){

A poza tym wyświetl sobie źródło strony z tymi checkboxami, skopiuj formularz i pokaż tu.


Spróbuj jeszcze dać inkrementację wprost
  1. <?php
  2. $i = 0;
  3.  while ($tab = mysql_fetch_array($query, MYSQL_BOTH)){
  4. echo('<tr>
  5. <td>
  6. <input type="checkbox" name="wpis['.$i.']" value="'.$tab['artID'].'" />
  7. </td>
  8. <td>'.$tab['tytul'].'</td>
  9. </tr>');
  10. $i ++;
  11. }
  12. ?>


Ten post edytował JoShiMa 20.08.2008, 15:56:19
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: 10.10.2025 - 05:21