Přepínací tlačítko (toggle) v HTML

stevo1

Přepínací tlačítko (toggle) v HTML
« kdy: 01. 09. 2015, 15:39:52 »
Dobry den

Potreboval by som pomoct s html.Mam formular ktory ak je spravne vypisany zapise text do text suboru. Potreboval by som tento formular prerobit na toggle button.  Prikazi su len dva ak by bol toggle aktivny bol by prikaz a zapisane do suboru rozni ak by bol toggle vypnuty prikaz a zapisane do suboru by bolo zhasni. Vedel by mi niekto poradit ?
index.php
Kód: [Vybrat]
<form method="POST" action="odeslat.php">
  <div align="center">
    <center>
    <table border="0" width="236">
      <tr>
        <td width="300">Pøíkaz :</td>
        <td width="164"><input type="text" name="prikaz" size="20" value=""></td>
      </tr>
      <tr>
        <td width="300">Heslo:</td>
        <td width="164"><input type="password" name="heslo" size="20"></td>
      </tr>
      <tr>
        <td width="300" colspan="2">
          <p align="center"><input type="submit" value="Odeslat" name="B1"></td>
      </tr>
    </table>
    </center>
  </div>
</form>

odeslat.php
Kód: [Vybrat]
<?php
// zjištìní hodnoty pøedávaného parametru z formuláøe na strance "index.htm"
  
$prikaz=$_POST['prikaz'];
  
$heslo=$_POST['heslo'];


  if (
$heslo != "123")   // tady si zvolte vlastní heslo
    
{
      echo 
"Spatne heslo";
    }
  else
    {

      if (
$prikaz == "")
        {
        echo 
"Prikaz chybi, takze se nic nezapsalo";
        }
      else
        {
          
// pokud je pøíkaz zadaný, uloží ho do souboru "kod.txt"
          
$soubor "kod.txt";
          
$fh fopen($soubor'w+');
          
fwrite($fh$prikaz);
          
fclose($fh);

          echo 
"Prikaz '" .  $prikaz "' byl zapsan do souboru 'kod.txt'";
        }
    }

?>

« Poslední změna: 01. 09. 2015, 18:31:49 od Petr Krčmář »


Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Pomoc s html
« Odpověď #1 kdy: 01. 09. 2015, 16:24:32 »
index.php
Kód: [Vybrat]
<?php
  $soubor 
"kod.txt";
  
$fh fopen($soubor"r");
  
$prikaz=fread($fh,10);
  
fclose($fh);
  if (
$prikaz=="zhasni") {
    
$prikaz="rozni";
  } else {
    
$prikaz="zhasni";
  }
?>

<form method="POST" action="odeslat.php">
  <div align="center">
    <center>
    <table border="0" width="236">
      <tr>
        <td width="300">Heslo:</td>
        <td width="164"><input type="password" name="heslo" size="20"></td>
      </tr>
      <tr>
        <td width="300" colspan="2">
          <p align="center"><input type="submit" value="<?php echo $prikaz?>" name="B1"></td>
      </tr>
    </table>
    </center>
  </div>
</form>
odeslat.php
Kód: [Vybrat]
<?php
// zji<9a>tìní hodnoty pøedávaného parametru z formuláøe na strance "index.htm"
  
$heslo=$_POST['heslo'];


  if (
$heslo != "123")   // tady si zvolte vlastní heslo
    
{
      echo 
"Spatne heslo";
    }
  else
    {
      
$soubor "kod.txt";
      
$fh fopen($soubor"r");
      
$prikaz=fread($fh,10);
      
fclose($fh);
      
$fh fopen($soubor"w");
      if (
$prikaz=="zhasni") {
        
$prikaz="rozni";
      } else {
        
$prikaz="zhasni";
      }
      
fwrite($fh,$prikaz);
      
fclose($fh);
      echo 
"Prikaz '" .  $prikaz "' byl zapsan do souboru 'kod.txt'";
    }

?>


Neco takovyho?

stevo1

Re:Pomoc s html
« Odpověď #2 kdy: 01. 09. 2015, 16:50:08 »
ano nieco podobne ako toggle button som myslel vsak toto ak bude toggle aktivny zapise rozni ak bude toggle vypnuty zapise zhasni. Heslo tam nebude.

opiio

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #3 kdy: 01. 09. 2015, 19:32:07 »
Doporucuji hledat "pure css toggle", lze udelat ciste pres css..

Kód: [Vybrat]
<input class="toggle" id="check1" type="checkbox" name="text" value="1" />
<label for="check1"></label>

a pomoci stylu

Kód: [Vybrat]
.toggle { opacity:0; }
.toggle + label { background:url(unchecked.png); }
.toggle:checked + label { background:url(checked.png); }

na skryti checkboxu je lepsi pouzit opacity:0, pokud se pouzije display:none nebo visibility:hidden nefunguje focus

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #4 kdy: 01. 09. 2015, 20:01:15 »
Este som sa chcel spytat ak chcem odstranit odtial heslo staci to takto ?

Kód: [Vybrat]
<?php
  
  
if
    {
      
$soubor "kod.txt";
      
$fh fopen($soubor"r");
      
$prikaz=fread($fh,10);
      
fclose($fh);
      
$fh fopen($soubor"w");
      if (
$prikaz=="zhasni") {
        
$prikaz="rozni";
      } else {
        
$prikaz="zhasni";
      }
      
fwrite($fh,$prikaz);
      
fclose($fh);
      echo 
"Prikaz '" .  $prikaz "' byl zapsan do souboru 'kod.txt'";
    }

?>


Ospravedlnujem sa ak to je zle som zaciatocnik :/


Kit

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #5 kdy: 01. 09. 2015, 20:26:08 »
Este som sa chcel spytat ak chcem odstranit odtial heslo staci to takto ?
Kód: [Vybrat]
... Ospravedlnujem sa ak to je zle som zaciatocnik :/

Je to sice značně zastaralé, kostrbaté a je v tom skrytý souběh, ale pro zkušební účely by to fungovat mohlo.

K čemu je vlastně dobrý soubor kod.txt? Má nějaký význam mimo PHP?

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #6 kdy: 01. 09. 2015, 22:53:52 »
@kit vedel by si mi to upravit aby to cele dobre fungovalo ? Je tam to if v poriadku ? Cele to funguje nato ze python script v raspberry pi mi cita status ktory je v subore kod.txt :)

Kit

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #7 kdy: 02. 09. 2015, 01:50:54 »
@kit vedel by si mi to upravit aby to cele dobre fungovalo ? Je tam to if v poriadku ? Cele to funguje nato ze python script v raspberry pi mi cita status ktory je v subore kod.txt :)

Ta poslední věta byla pro mne velmi důležitá.

Není to sice nijak dokonalé, ale v této podobě mi to funguje. Je to vše v jednom souboru, který si můžeš pojmenovat třeba index.php.
Kód: [Vybrat]
<?php

$soubor 
"kod.txt";
if (
$_SERVER['REQUEST_METHOD'] == "POST") {
    if (!isset(
$_POST['heslo'])) {
        
header('Location: #chybi-heslo');
        exit();
    }
    if (
$_POST['heslo'] != "a123") {
        
header('Location: #spatne-heslo');
        exit();
    }
    if (!isset(
$_POST['prikaz'])) {
        
header('Location: #chybi-prikaz');
        exit();
    }
    
$prikaz $_POST['prikaz'];
    switch (
$prikaz) {
        case 
'zhasni' :
        case 
'rozni' :
            
file_put_contents($soubor$prikaz);
            
header('Location: #prikaz-splnen');
            exit();
        default:
            
header('Location: #spatny-prikaz');
            exit();
    }
}
header('Content-Type: text/html;charset=UTF-8');
if (! 
$stav = @file_get_contents($soubor)) {
    
file_put_contents($soubor'');
}
echo <<<EOT
<form method="POST">
  <div align="center">
    <center>
    <table border="0" width="236">
      <tr>
        <td width="300">Stav:</td>
        <td width="164">
$stav</td>
      </tr>
      <tr>
        <td width="300">Příkaz:</td>
        <td width="164"><input type="text" name="prikaz" size="20" value=""></td>
      </tr>
      <tr>
        <td width="300">Heslo:</td>
        <td width="164"><input type="password" name="heslo" size="20"></td>
      </tr>
      <tr>
        <td width="300" colspan="2">
          <p align="center"><input type="submit" value="Odeslat" name="B1"></td>
      </tr>
    </table>
    </center>
  </div>
</form>
EOT;

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #8 kdy: 02. 09. 2015, 07:05:42 »
@kit ak som to dobre porozumel kodu tak si ho len upravil ? Potreboval by som aby tie prikazi rozni (aktivny toggle button) zhasni (vypnuty toggle button ) zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?

Kit

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #9 kdy: 02. 09. 2015, 07:24:22 »
@kit ak som to dobre porozumel kodu tak si ho len upravil ? Potreboval by som aby tie prikazi rozni (aktivny toggle button) zhasni (vypnuty toggle button ) zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?

Stačí, když vyhodíš ty dvě podmínky, kde je použit $_POST['heslo'], tedy kompletních 6 řádek včetně if a složených závorek.

Ve formuláři pak vyhodíš dva poslední řádky tabulky.

Do toho souboru kod.txt to zapisuje už nyní.

Kit

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #10 kdy: 02. 09. 2015, 07:40:04 »
... zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?

Jo tys to myslel úplně jednoduše s jediným tlačítkem? Na to ani nepotřebuješ tabulku.
Kód: [Vybrat]
<?php

$soubor 
"kod.txt";
if (
$_SERVER['REQUEST_METHOD'] == "POST") {
    if (isset(
$_POST['zhasni'])) {
        
file_put_contents($soubor'zhasni');
        
header('Location: #zhasnuto');
        exit();
    }
    if (isset(
$_POST['rozni'])) {
        
file_put_contents($soubor'rozni');
        
header('Location: #roznuto');
        exit();
    }
    
header('Location: #chybi-prikaz');
    exit();
}
header('Content-Type: text/html;charset=UTF-8');
if (! 
$stav = @file_get_contents($soubor)) {
    
file_put_contents($soubor'');
}
$name = ($stav == 'rozni') ? 'zhasni' 'rozni';
$value = ($stav == 'rozni') ? 'Zhasni' 'Rožni';
echo <<<EOT
<form method="POST">
  <div align="center">
    <center>
        <input type="submit" value="
$value" name="$name"></td>
    </center>
  </div>
</form>
EOT;

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #11 kdy: 02. 09. 2015, 09:17:26 »
@kit este som sa chcel spytat je moc velky problem tam pridat casovac ? Ak bude toggle aktivny zobrazi sa napriklad 30s a po odratani sa sam vypne ? Poto by ma zaujimalo vsak ako by to bolo ak by som refreshol stranku casovac by zacal znovu alebo by dokazal pokracovat ? Dakujem ti inak velmi pekne :)

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #12 kdy: 02. 09. 2015, 19:25:58 »
... zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?

Jo tys to myslel úplně jednoduše s jediným tlačítkem? Na to ani nepotřebuješ tabulku.
Kód: [Vybrat]
<?php

$soubor 
"kod.txt";
if (
$_SERVER['REQUEST_METHOD'] == "POST") {
    if (isset(
$_POST['zhasni'])) {
        
file_put_contents($soubor'zhasni');
        
header('Location: #zhasnuto');
        exit();
    }
    if (isset(
$_POST['rozni'])) {
        
file_put_contents($soubor'rozni');
        
header('Location: #roznuto');
        exit();
    }
    
header('Location: #chybi-prikaz');
    exit();
}
header('Content-Type: text/html;charset=UTF-8');
if (! 
$stav = @file_get_contents($soubor)) {
    
file_put_contents($soubor'');
}
$name = ($stav == 'rozni') ? 'zhasni' 'rozni';
$value = ($stav == 'rozni') ? 'Zhasni' 'Rožni';
echo <<<EOT
<form method="POST">
  <div align="center">
    <center>
        <input type="submit" value="
$value" name="$name"></td>
    </center>
  </div>
</form>
EOT;

Tak som to skusil nahodit a nezobrazi sa na stranke nic :/ ziadny toggle button vedel by si mi tam pridat toggle button ako je

Este raz ti velmi pekne dakujem

stevo1

Re:Přepínací tlačítko (toggle) v HTML
« Odpověď #13 kdy: 04. 09. 2015, 01:21:13 »
@kit prosim poradil by si mi ? Dakujem.