Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php5] checkbox - problem
Forum PHP.pl > Forum > Przedszkole
srwsio
Witam
Otóż ma plik protokol.php w do którego includuje plik html z formularzem. Na formie znajduje się kilak checkboxów. Jeśli zaznaczę je to jest oki a jeśli któregoś z nich nie zaznaczę wywala błąd :
Jest to skrypt który pobiera z formularza dane i zapisuje je do bazy oraz wstawia je do dokumentu pdf.

Notice: Undefined index: nmodem in C:\Program Files\WebServ\httpd\page\protokol.php on line 32
Notice: Undefined index: zasil in C:\Program Files\WebServ\httpd\page\protokol.php on line 32

poniższa linia (32) to dalsza część zapisu do bazy czyli
  1. VALUES ('{$_POST['nrzlecenia']}', '{$_POST['imie']}', '{$_POST['nazwisko']}', '{$_POST['nrklienta']}', '{$_POST['pesel']}', '{$_POST['dowod']}', '{$_POST['ulica']}', '{$_POST['blok']}', '{$_POST['mieszkanie']}', '{$_POST['kodpocztowy']}', '{$_POST['miasto']}', '{$_POST['ulica2']}', '{$_POST['blok2']}', '{$_POST['mieszkanie2']}', '{$_POST['kodpocztowy2']}', '{$_POST['miasto2']}', '{$_POST['rodzajmodemu']}', '{$_POST['nrserial']}', '{$_POST['hfcmac']}', '{$_POST['modem']}', '{$_POST['nmodem']}', '{$_POST['zasil']}', '{$_POST['nzasil']}', '{$_POST['usb']}', '{$_POST['nusb']}', '{$_POST['ethernet']}', '{$_POST['nethernet']}', '{$_POST['sterownik']}', '{$_POST['nsterownik']}', '{$_POST['instrukcja']}', '{$_POST['ninstrukcja']}', '{$_POST['opakowanie']}', '{$_POST['nopakowanie']}')");

poniżej wycinek forma z checkboxami

  1. <td>Modem</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('modem'); ?></td>
  2. </tr>
  3. <tr>
  4. <td>Kabel/zasilacz</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('zasil'); ?></td>
  5. </tr>
  6. <tr>
  7. <td>Kabel USB</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('usb'); ?></td>
  8. </tr>
  9. <tr>
  10. <td>Kabel Ethernet</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('ethernet'); ?></td>
  11. </tr>
  12. <tr>
  13. <td>Sterowniki/CD</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('sterownik'); ?></td>
  14. </tr>
  15. <tr>
  16. <td>instrukcja</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('instrukcja'); ?></td>
  17. </tr>
  18. <tr>
  19. <td>Opakowanie</td><td align="left">&nbsp;&nbsp;&nbsp;<?php gen_select2('opakowanie'); ?></td>


oraz
  1. <?php
  2. function gen_select2($protokol)
  3. {
  4. echo("<input type="checkbox" name="{$protokol}" value="X" /><input type="checkbox" name="n{$protokol}" value="X" />rn");
  5. }
  6. ?>





za wszelkie odpowiedzi z góry dziękuję
strife
Musisz wcześniej zadeklarować te zmienne wtedy nie będziesz miał błędu. W Twoim kodzie jeśli nie zaznaczysz checkbox'a to jest oczywiste, że wywali błąd, ponieważ w dalszej części kodu odwołujesz się do indeksu tablicy, która siłą rzeczy nie istnieje bo go nie zaznaczyłeś. Naprawić to możesz, w ten sposób:

  1. <?php
  2. $nmodem = NULL;
  3. if ( isset( $_POST['nmodem'] ) ) {
  4. $nmodem = $_POST['nmodem'];
  5. }
  6. ?>


... i w dalszej części kodu zapytanie do bazy modyfikujesz, żeby zamiast {$_POST['nmodem']}, była zmienna $nmodem.

Pozdrawiam!
srwsio
dziękuję serdecznie za podpowiedź ale poniższe zapytanie zastosowane do każdego checkboxa wsio załatwiło
  1. <?php
  2. if (isset($_POST['nmodem'])) {
  3. $_POST['nmodem'] = 'X';
  4. $_POST['modem'] = ''; }
  5. else if (isset($_POST['modem'])){
  6. $_POST['nmodem'] = '';
  7. $_POST['modem'] = 'X'; }
  8. ?>


jeszcze raz wielkie dzięki
pozdrawiam
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.