Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 14.11.2010 5:41

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.11.2010 9:34

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?







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

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

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.11.2010 18:28

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...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

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

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 15.11.2010 9:24

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? :)







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

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

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ý: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 15.11.2010 19:06

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
Príspevok Napísal autor témyOffline : 19.11.2010 1:28

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


Odpovedať na tému [ Príspevkov: 9 ] 


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

445

07.11.2014 13:02

stenley Zobrazenie posledných príspevkov

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

v PHP, ASP

2

385

24.04.2010 18:57

jtomcik Zobrazenie posledných príspevkov

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

v PHP, ASP

3

380

04.06.2014 22:55

BX Zobrazenie posledných príspevkov

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

v PHP, ASP

2

521

05.07.2009 13:09

Snacker Zobrazenie posledných príspevkov

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

v PHP, ASP

5

532

19.02.2010 9:01

arno Zobrazenie posledných príspevkov

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

v Technológia .NET

5

429

28.02.2017 17:08

GamerSK Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

6

508

11.10.2011 22:03

chrono Zobrazenie posledných príspevkov

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

v PHP, ASP

3

563

22.04.2009 14:53

drozdo Zobrazenie posledných príspevkov

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

v Ostatné programy

2

510

03.07.2015 11:57

majetan212 Zobrazenie posledných príspevkov

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

v PHP, ASP

1

388

17.09.2011 21:46

chrono Zobrazenie posledných príspevkov

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

v PHP, ASP

9

394

07.10.2013 8:42

Elrohir Zobrazenie posledných príspevkov

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

v PHP, ASP

1

496

21.07.2009 12:15

Ďuri Zobrazenie posledných príspevkov

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

v PHP, ASP

3

449

31.01.2008 14:36

stenley Zobrazenie posledných príspevkov

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

v PHP, ASP

13

640

09.05.2009 16:43

kaidžas Zobrazenie posledných príspevkov

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

v PHP, ASP

10

617

19.05.2011 11:43

jtomcik Zobrazenie posledných príspevkov

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

v Technológia .NET

2

396

22.02.2017 14:31

GamerSK Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra