Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z checboxem
Forum PHP.pl > Forum > Przedszkole
gosienkami
<input name="abonament" type="checkbox" id="abonament" value="zmien" />
  1. <?php
  2. $abonament=$_POST['zmien'];
  3. echo 'ab'.$abonament;//tu nic nie wyswietla
  4. if(isset($_POST['zmien'])) {
  5.   $abonament='bezterminowy';
  6.   }
  7.   else{
  8.    $abonament='terminowy';            
  9.   }
  10.   echo 'abonament::::  '.$abonament;
  11. ?>

dlaczego ze wzgledu czy sie zaznaczy cz nie wyswietla terminowy. //tak jakby nie była przekazywana zmienna.
wookieb
Kod
$_POST['abonament'];
gosienkami
mam jeszcze cos takiego ze pobieram wartosc abonamentu z bazy i przekazuje
<input name="abonament" type="hidden" id="abonament" value="<? echo $abonament; ?>" /> do nastepnego formularza.
nie wiem jak zmienić powyzsza petle zeby checbox niezaznaczony pozostawiał abonament taki jak jest w bazie natomiast jak zaznaczymy to zeby zmieniał na przeciwną jaka jest w bazie czyli np 'terminowy' na =>'bezterminowy' i na odwrot
Cytat(wookieb @ 5.02.2009, 11:06:16 ) *
Kod
$_POST['abonament'];
wookieb
Cytat
nie wiem jak zmienić powyzsza petle

Dowiedz się co to jest pętla.
Kod
if(isset($_POST['abonament']))
{
$abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
}
gosienkami
tylko nie wiem jak to zapisac:(
Cytat(wookieb @ 5.02.2009, 11:39:19 ) *
Dowiedz się co to jest pętla.
Kod
if(isset($_POST['abonament']))
{
$abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
}
wookieb
Cytat(gosienkami @ 5.02.2009, 12:36:18 ) *
tylko nie wiem jak to zapisac:(

Możesz skopiować ... Masz pozwolenie. Podałem ci wszystko czego potrzebujesz. Teraz tylko naprawdę bardzo bardzo trochę się wysilic.
gosienkami
mam tak i działana odwrot, bo jak niezaznacze checboxa to zmienia wartosc na przeciwna co jest w bazie., a jak zznacze to zostawia.
  1. <?php
  2. if(isset($_POST['abonament']))
  3.  {
  4.  $abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
  5.   }
  6.   elseif(!isset($_POST['abonament']))
  7.   {
  8.   $abonament=($abonament=='bezterminowy')?'terminowy':'terminowy';            
  9.   }
  10.   else
  11.   echo $abonament;
  12. ?>
wookieb
Błagam cię sad.gif
Kod
if(isset($_POST['abonament']) && $_POST['abonament']=='zmien')
  {
  $abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
   }
echo $abonament;

Ten $_POST['abonament']=='zmien' na wszelki wypadek
gosienkami
tak ale to działa na odwrot jak nie zaznaczony to zmienia wartosc
Kod
if(isset($_POST['abonament']) && $_POST['abonament']=='zmien')
   {
   $abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
    }
  echo $abonament;

Ten $_POST['abonament']=='zmien' na wszelki wypadek
[/quote]
wookieb
Pokaż cały kod.
gosienkami
plik1
  1. <input name="abonament" type="hidden" id="abonament" value="<? echo $abonament; ?>" />
  2. <input name="abonament" type="checkbox" id="abonament" value="zmien" />

plik2
  1. <?php
  2. abonament=$_POST['abonament'];
  3.  
  4.  if(isset($_POST['abonament']))
  5. {
  6. $abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
  7.  }
  8.  elseif(!isset($_POST['abonament']))
  9.  {
  10.  $abonament=($abonament=='bezterminowy')?'terminowy':'terminowy';            
  11.  }
  12.  else
  13.  echo $abonament;
  14. ?>
wookieb
To zacznijmy analize...
1) Czy przekazałaś do pliku2 zmienna w poscie na temat zaznaczonego boxa w pliku 1?
2) Przeanalizuj sobie drugi kod. Przecież podałem ci inny
a) Wrzucasz to $abonament zmienna $_POST['abonament'](która jak sie domyślam może jej nie byc albo zawierać string "zmien") (wyświetl sobie jej wartość)
cool.gif Jeżeli jest zmienna $_POST['abonament'] to wykonuje sie zamiana $zmiennej $abonament na "bezterminowy" pod warunkiem ze zawiera słowo "terminowy", jezeli nie to wrzuca "terminowy"
c) jeżeli nie ma zmiennej $_POST['abonament'] to bezwarunkowo $abonament przypisujesz 'terminowy'

Masz brak logiki. Przeanalizuj sobie SAMA to co zrobiłas a to co chcesz zrobic.

Masz przecież tylko Pobrać z bazy aktualna wartość $abonament i zamienić odpowiednie pod warunkiem, że box był zaznaczony (koniecznie sprawdź 1 punkt).

Nie podam ci rozwiązania bo musisz sama do tego dojść.
gosienkami
to zmieniłam tak
  1. <?php
  2. if(isset($_POST['zmiana'])) {
  3.  $zmiana='bezterminowy';
  4.  }
  5.  else{
  6.   $zmiana='terminowy';            
  7.  }
  8.  echo 'checbox::::  '.$zmiana.':::';
  9.  
  10.  
  11.  
  12.  
  13. if(isset($_POST['abonament'])&&($_POST['zmiana']=='zmien'))
  14. {
  15. $abonament=($abonament=='terminowy')?'bezterminowy':'terminowy';
  16.  }
  17.  else
  18.    echo $abonament;
  19. ?>


Cytat(wookieb @ 5.02.2009, 14:44:19 ) *
To zacznijmy analize...
1) Czy przekazałaś do pliku2 zmienna w poscie na temat zaznaczonego boxa w pliku 1?
2) Przeanalizuj sobie drugi kod. Przecież podałem ci inny
a) Wrzucasz to $abonament zmienna $_POST['abonament'](która jak sie domyślam może jej nie byc albo zawierać string "zmien") (wyświetl sobie jej wartość)
B) Jeżeli jest zmienna $_POST['abonament'] to wykonuje sie zamiana $zmiennej $abonament na "bezterminowy" pod warunkiem ze zawiera słowo "terminowy", jezeli nie to wrzuca "terminowy"
c) jeżeli nie ma zmiennej $_POST['abonament'] to bezwarunkowo $abonament przypisujesz 'terminowy'

Masz brak logiki. Przeanalizuj sobie SAMA to co zrobiłas a to co chcesz zrobic.

Masz przecież tylko Pobrać z bazy aktualna wartość $abonament i zamienić odpowiednie pod warunkiem, że box był zaznaczony (koniecznie sprawdź 1 punkt).

Nie podam ci rozwiązania bo musisz sama do tego dojść.
blooregard
Cytat
if(isset($_POST['abonament'])&&($_POST['zmiana']=='zmien'))


Czy checkbox 'zmiana' w value ma "zmien" ?
wookieb
To teraz wyjaśnij jak wysłałas do pliku2 zmienne w poscie i czy napewno dobre nazwy przyjelas bo chyba nadal niczego nie rozumiesz...
  1. <input type="NAZWA" value="WARTOSC" />


to po wyslaniu takiego inputa postem bedziesz miala cos takiego
Kod
echo $_POST['NAZWA'];

i wyswietli ci WARTOSC
gosienkami
wysłałam Ci do sprawdzenia tylko bo działa tak jak chciałam.
Cytat(wookieb @ 5.02.2009, 16:01:10 ) *
To teraz wyjaśnij jak wysłałas do pliku2 zmienne w poscie i czy napewno dobre nazwy przyjelas bo chyba nadal niczego nie rozumiesz...
  1. <input type="NAZWA" value="WARTOSC" />


to po wyslaniu takiego inputa postem bedziesz miala cos takiego
Kod
echo $_POST['NAZWA'];

i wyswietli ci WARTOSC
wookieb
Cytat(gosienkami @ 5.02.2009, 16:35:23 ) *
wysłałam Ci do sprawdzenia tylko bo działa tak jak chciałam.

... No to temat do zamkniecia. Poradziłas sobie.
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.