[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 14.11.10
Prihlásený: 22.09.17
Príspevky: 129
Témy: 27 | 27
NapísalOffline : 14.11.2010 5:41 | PHP podmienka checkbox

Zdravim, neviem si rady s podmienkou. Na html stranke mam formular s checkboxom (zaskrtavacie policko) a potrebujem, aby jeho hodnota (zaskrtnute alebo nezaskrtnute) bola po kliknuti na odosielacie tlacidlo formulara VZDY zapamatana.

Checkbox vyzera takto:
Kód:
<input type="checkbox" name="mriezka" value="ano" <? if( $_POST['mriezka']=="ano" ) echo ' checked="checked" '; ?>> zobraziť mriežku

Pokial je stranka otvorena, tak si hodnotu pamata pomocou podmienky IF, ktora je v zdrovom kode vyssie. Ale ak stranku opustim alebo znovu nacitam, hodnota sa strati. Preto som PHP skript doplnil o ulozenie a nacitanie tejto hodnoty zo suboru. Avsak teraz mi to nefunguje tak ako ma. Hodnotu checkboxu mi zo suboru nacitava do premennej $load_mriezka. Ulozenie hodnoty checkboxu do suboru prebehne po kliknuti na odsielacie tlacidlo formulara.

V tomto kode ak checkbox odsktrnem, tak po kliknuti na odosielacie tlacidlo mi vrati checkbox zaskrtnuty (malo by ostat nezaskrtnute):
Kód:
<input type="checkbox" name="mriezka" value="ano"
<?  if ($_POST['mriezka'])
      {
          if ($_POST['mriezka']=="ano") { echo (' checked="checked"'); }
      }                   
      else
      {
          if ($load_mriezka=="ano") echo (' checked="checked"');                       
      }
?>
> zobraziť mriežku


Zapis aj citanie z/do suboru mi funguje spravne, problem je len v tej podmienke.
Prosim vas pekne, vedel mi s tym niekto pomoct? :)


Offline

Správca fóra
Správca fóra
PHP podmienka checkbox

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 14.11.2010 9:34 | PHP podmienka checkbox

kedze si tu nedal kod, ktorym ukladas hodnoty do suboru a nasledne z neho citas, je tazke povedat, v com je problem - v uvedenych podmienkach chybu nevidim. Mne sa zda, ze ked checkbox odskrtnes, tak pred tym ulozenu hodnotu "ano" v tom subore neprepises... skus si dat vypisovat obsah $load_mriezka

nebolo by lepsie ukladat stav formulara do $_SESSION?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 14.11.10
Prihlásený: 22.09.17
Príspevky: 129
Témy: 27 | 27
Napísal autor témyOffline : 14.11.2010 14:18 | PHP podmienka checkbox

tu je kod aj s nacitavanim a ukladanim do suboru, snazil som sa to skratit ako sa dalo ;)

Kód:
<?
   // nacitanie hodnot zo suboru
   $subor = File("subor.php");
   for ($i=0; $i<Count($subor); $i++)
   {
      if ($i==11)   { $load_mriezka=$subor[$i]; }
   }   

   // formular - odosiela data do rovnakeho suboru, v ktorom sa nachadza
?>
   <form action="subor2.php?odoslane" method="post">   
      <input type="checkbox" name="mriezka" value="ano"
            <?    if ($_POST['mriezka'])
                    {
                        if ($_POST['mriezka']=="ano") { echo (' checked="checked"'); }
                    }                   
                    else
                    {
                        if ($load_mriezka=="ano") echo (' checked="checked"');                       
                    }
            ?> >zobraziť mriežku
      <input type="submit" name="set_premenne" value="OK" style="width: 150px">      
   </form>      <br><br>   

<?      // prikazy po stlaceni odosielacieho tlacidla formulara
      if(isset($_REQUEST['set_premenne']))
      {         
         // zapis hodnot do suboru
         $subor= "subor.php";
         $fh = fopen($subor, 'w') or die("súbor sa nepodarilo otvoriť");
         $stringData = "$mriezka";
         fwrite($fh, $stringData);
         fclose($fh);
      }
         //vypis obsahu premennych
         echo ("mriezka = $mriezka<br>");
         echo ("load_mriezka = $load_mriezka<br>");      
?>


hodnota v subore sa prepise, chyba bude zrejme v tom algoritme zapisu/nacitania zo suboru, pretoze mi to nacitava predchadzajucu hodnotu, inymi slovami, ak je checkbox zaskrtnuty a ja ho odskrtnem, tak premenna $load_mriezka = ano (malo by byt nie) a naopak, ak checkbox nieje zaskrtnuty a ja ho zaskrtnem, tak premenna $load_mriezka = nie (malo by byt ano)

a o $_SESSION som uz pocul, ale zatial sa v nej nevyznam, neviem ci to nebude az prilis zlozite :D


Offline

Správca fóra
Správca fóra
PHP podmienka checkbox

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 14.11.2010 18:28 | PHP podmienka checkbox

problem je v poradi, v akom vykonavas jednotlive kroky. Ty musis po odoslani formulara najpr ulozit nove data, nacitat ich a az nakoniec zobrazit. Teraz nacitas (stare), zobrazis (stare) a na uplnom konci ulozis (nove). Prave preto ti to nefunguje ako ma.

pouzitie $_SESSION je velmi jednoduche. Ak vies pracovat s premennymi, nebudes mat problem. Urcite si o tom nieco nastuduj

Tvoj kod je momentalne obmedzeny len na jedneho pouzivatela. Ak by sa pripojili viaceri, navzajom by si prepisovali obsah suboru, kde mas ulozeny stav formulara, a to asi nechces...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 14.11.10
Prihlásený: 22.09.17
Príspevky: 129
Témy: 27 | 27
Napísal autor témyOffline : 14.11.2010 23:14 | PHP podmienka checkbox

rozumiem co myslis, ale asi to nebude potrebne. Potrebujem, aby hodnotu zo suboru nacitalo iba pri novom nacitani stranky, pokial sa neklikne na odosielacie tlacidlo formulara.

Momentalne mam takuto podmienku pri checkboxe:
Kód:
<input type="checkbox" name="mriezka" value="ano" <? if( $_POST['mriezka']=="ano" ) echo ' checked="checked" '; ?>> zobraziť mriežku

Tato podmienka si pamata hodnotu checkboxu iba pokial je stranka otvorena, ak sa zavrie alebo refreshne, hodnota sa strati. Preto potrebujem tuto podmienku rozsirit/upravit o to, aby pri novom nacitani stranky nacitalo hodnotu zo suboru. Problemom je, ze checkbox odosiela hodnotu iba ak je zaskrnuty a ja to neviem osetrit, aby pri odskrtnuti checkboxu uz hodnotu zo suboru nenacitavalo.

V skratke:
1. otvorim stranku
2. nacitam hodnotu checkboxu zo suboru
3. po odoslani formulara hodnotu checkbocu urcuje premenna $mriezka a zo suboru uz nic nenacitavam


Offline

Správca fóra
Správca fóra
PHP podmienka checkbox

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 15.11.2010 9:24 | PHP podmienka checkbox

skus pouzit nieco taketo, je to bez suboru, s vyuzitim $_SESSION:
Kód:
<?php
session_start();

if($_POST)
{
   $_SESSION['mriezka'] = (int)isset($_POST['mriezka']); //ak bol checkbox zaskrtnuty, $_SESSION['mriezka'] obsahuje 1, inak 0
}
elseif(!isset($_SESSION['mriezka']))
{
   $_SESSION['mriezka'] = 0; //uplne prve nacitanie formularu, checkbox je nezaskrtnuty
}
?>
<form method="post">
<input type="checkbox" name="mriezka" value="ano"<?php if($_SESSION['mriezka']) { echo ' checked="checked"'; }?>>
<input type="submit" name="set_premenne" value="OK">
</form>

jednoduchsie, nie? :)


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 14.11.10
Prihlásený: 22.09.17
Príspevky: 129
Témy: 27 | 27
Napísal autor témyOffline : 15.11.2010 16:48 | PHP podmienka checkbox

dakujem ti stenley za ochotu :)), trosku pogooglim ohladom toho session nech mam paru co je to zac :D

ale pomoze mi to? lebo ak dobre chapem tvoj kod so session, tak ono si to zapamata zaskrtnutie/nezaskrtnutie checkboxu len ak je stranka otvorena. A ja potrebujem aby si tuto hodnotu pamatalo aj ked stranku vecer zavriem a rano zase otvorim. A to sa da jedine ak tu hodnotu ulozim do databazy alebo do suboru (aspon nic ine mi nenapada :D ) a to s tym suborom mi pripada lahsie :).
Ale mozno to nejako skombinujem :)


Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 15.11.2010 19:06 | PHP podmienka checkbox

môžeš použiť aj "koláčiky"

http://php.net/manual/en/features.cookies.php


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
PHP podmienka checkbox

Registrovaný: 14.11.10
Prihlásený: 22.09.17
Príspevky: 129
Témy: 27 | 27
Napísal autor témyOffline : 19.11.2010 1:28 | PHP podmienka checkbox

piect kolaciky sa mi velmi nechce lebo nie kazdemu chutia :D, cize nie kazdy ma cookies povolene, ale vdaka za tip :)


 [ Príspevkov: 9 ] 


PHP podmienka checkbox



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

CHECKBOX, checked php

v PHP, ASP

16

236

07.11.2014 13:02

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

PHP DELETE with checkbox

v PHP, ASP

2

208

24.04.2010 18:57

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

php funkcia - podmienka

v PHP, ASP

3

155

04.06.2014 22:55

BX

V tomto fóre nie sú ďalšie neprečítané témy.

CheckBox

v Technológia .NET

5

114

28.02.2017 17:08

GamerSK

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v JavaScript, VBScript, Ajax

6

319

11.10.2011 22:03

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v PHP, ASP

2

358

05.07.2009 13:09

Snacker

V tomto fóre nie sú ďalšie neprečítané témy.

Checkbox

v Ostatné programy

2

195

03.07.2015 11:57

majetan212

V tomto fóre nie sú ďalšie neprečítané témy.

CheckBox

v PHP, ASP

5

337

19.02.2010 9:01

arno

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v PHP, ASP

3

382

22.04.2009 14:53

drozdo

V tomto fóre nie sú ďalšie neprečítané témy.

CHECKBOX CHECKED

v PHP, ASP

1

308

21.07.2009 12:15

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox checked

v PHP, ASP

9

219

07.10.2013 8:42

Elrohir

V tomto fóre nie sú ďalšie neprečítané témy.

input - checkbox

v PHP, ASP

1

228

17.09.2011 21:46

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

upload suboru checkbox

v PHP, ASP

13

440

09.05.2009 16:43

kaidžas

V tomto fóre nie sú ďalšie neprečítané témy.

$_GET vs. CheckBox

v PHP, ASP

3

302

31.01.2008 14:36

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Checkbox array s mysql

v PHP, ASP

10

404

19.05.2011 11:43

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

podmienka

v PHP, ASP

1

302

22.11.2010 23:27

stenley



© 2005 - 2017 PCforum, edited by JanoF