Rozevírací seznm a zobrazení dat

Napište nám o svých webových stránkách, dejte vědět o jakémkoliv jiném zajímavém webu

Moderátoři: Myloš, Mods_senior

Odpovědět
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Rozevírací seznm a zobrazení dat

Příspěvek od pajacz17 »

Ahoj, můžete mi prosím poradit, jak udělat rozevírací seznam, aby byly vždy vidět pouze vybrané položky. Jde to pomocí php?
Nevím kde začít. Děkuji
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Rozevírací seznm a zobrazení dat

Příspěvek od CZechBoY »

A kdy chces ty polozky videt? Po odeslani na server nebo hned u klienta?
Jestli u klienta tak zkus nejakej multiselect js plugin.. treba bootstrap-select nebo select2.
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: Rozevírací seznm a zobrazení dat

Příspěvek od pajacz17 »

Rád bych po odeslání na server, takže pokud možno přes php. Rád bych aby tam byly checkboxy nebo rozevírací seznam a podle toho se mě to zobrazilo. Stačí udělat formulář s těmito buttony a potom to načítat pomocí include do stránky, nebo je jiný princip? Děkuji

Dodatečně přidáno po 4 hodinách 6 minutách 20 vteřinách:
Napsal jsem toto, ale nejde to prosím udělat jednodušeji, abych pro každé zaškrtnutí nemusel vše opisovat.
Je něco jako: pokud je $_GET['blok1'] vypiš tento blok jinak nic nevypiš
a zároveň pokud je $_GET['blok2'] vypiš tento blok jinak nic nevypiš atd pro blok 3 a 4?


Kód: Vybrat vše

<form action="" method="get">

<input type="checkbox" name="blok1" value="blok1" checked="true" /> blok1<br />
<input type="checkbox" name="blok2" value="blok2" checked="true" /> blok2<br />
<input type="checkbox" name="blok3" value="blok3" checked="true" /> blok3<br />
<input type="checkbox" name="blok4" value="blok4" checked="true" /> blok4<br />
<br />

<input type="submit" name="odeslat" value="zobrazit" />

</form>

<?php
           
           
$blok1 = "blok1";
$blok2 = "blok2";
$blok3 = "blok3";
$blok4 = "blok4";

           
if ((isset($_GET['blok1'])) && (isset($_GET['blok2'])) && (isset($_GET['blok3'])) && (isset($_GET['blok4'])))
{
include "blok1.php";
echo '<br />';
include "blok2.php";
echo '<br />';
include "blok3.php";
echo '<br />';
include "blok4.php";
echo '<br />';
}
elseif ($_GET['blok1'] & $_GET['blok2'] & $_GET['blok3'])
{
include "blok1.php";
echo '<br />';
include "blok2.php";
echo '<br />';
include "blok3.php";
echo '<br />';
}

else
{
echo "chyba";
}



?>


Děkuji

Dodatečně přidáno po 6 hodinách 42 minutách 46 vteřinách:
Tak se mi povedl zápis zkrátit takto a funguje to.

Kód: Vybrat vše

<!-- Checkbox -->
  <form action="" method="get">
  <input type="checkbox" name="blok1" value="blok1" checked="true" /> blok1<br />
  <input type="checkbox" name="blok2" value="blok2" checked="true" /> blok2<br />
  <input type="checkbox" name="blok3" value="blok3" checked="true" /> blok3<br />
  <input type="checkbox" name="blok4" value="blok4" checked="true" /> blok4<br />
  <br />
  <input type="submit" name="odeslat" value="zobrazit" />
  </form>
 
  <?php

 
if (isset($_GET['odeslat']))
   {         
    if (isset($_GET['blok1']))
    {
     include "../inc/test/blok1.php";
     echo '<br />';
    }
   
    if (isset($_GET['blok2']))
    {
     include "../inc/test/blok2.php";
     echo '<br />';
    }
   
    if (isset($_GET['blok3']))
    {
     include "../inc/test/blok3.php";
     echo '<br />';
    }
   
    if (isset($_GET['blok4']))
    {
     include "../inc/test/blok4.php";
     echo '<br />';
    }
    }

else
{
include "../inc/test/blok1.php";
echo '<br />';
include "../inc/test/blok2.php";
echo '<br />';
include "../inc/test/blok3.php";
echo '<br />';
include "../inc/test/blok4.php";
echo '<br />';
}


?>


Ještě bych potřeboval, aby se mi vždy zobrazily zaškrtnutý políčka pouze vybraných bloků.
Mohu Vás poprosit jak to udělat?

Díky
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Rozevírací seznm a zobrazení dat

Příspěvek od CZechBoY »

Vsak to resis tema podminkama dole, ne? Nebo co mas v tech souborech blok1-blok5?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: Rozevírací seznm a zobrazení dat

Příspěvek od pajacz17 »

Zatím nic, ale ten blok bude kus stránky, který se tam načte po zaškrtnutí příslušného checkboxu. Zatím mně to načítá pouze text, ale vždy po zmáčknutí tlačítka se vždy opět načte formulář a všechny checkboxy jsou zatržený. Chtěl bych, pokud zaškrtnu pouze blok 2, aby po zobrazení tohoto bloku se načetl formulář pouze se zaškrtnutým vybraným blokem.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Rozevírací seznm a zobrazení dat

Příspěvek od CZechBoY »

Aha ty me mates a pouzivas blok i pro zaskrtavatko :D

Kód: Vybrat vše


<input type="checkbox" name="blokX" value="blokX"<?php if (!empty($_GET["blokX"]) { ?> checked="checked"<?php ?>>
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: Rozevírací seznm a zobrazení dat

Příspěvek od pajacz17 »

Díky moc jsi borec. :clap: Funguje to perfektně. Jaké jednoduché když člověk ví jak na to. Snad se taky k tomu někdy dopracuji. Ještě si to upravím, aby vždy při prvním načtení stránky bylo vše zaškrtnuté a zobrazené.

Ještě bych měl prosbičku. Je možné přenést proměnnou při přesměrování na jinou stránku?

Kód: Vybrat vše

header('Location: test.php?data=ano');
exit;

if (data)
{
$text = "Toto se vypíše";
}


Takto dokážu vypsat text, který si nastavím do $text. Co když ale chci zapsat - Vaše odpověď je "ta proměnná kterou tam zadal uživatel např. do formuláře"?

Díky, snad jsem to vysvětlil lépe než minule :D
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Rozevírací seznm a zobrazení dat

Příspěvek od CZechBoY »

To je trosku tezsi - bud muzes do url pridat nejaky parametr a mit lhasku napevno naparovanou pro hodnotu toho parametru, nebo pouzit session.

Kód: Vybrat vše


<?php if (isset($_GET["ok"]) && $_GET["ok"] == 1) { ?>
Uspesne ulozeno.
<? ?>

a potom v tom tvym formulari jak presmerovavas

Kód: Vybrat vše

<?php
header
('Location: test.php?ok=1');
exit;
 


Pokud potrebujes tu hlasku dynamickou tak pomoci session

Kód: Vybrat vše

<?php
session_start
();
if (!empty(
$_SESSION["hlaska"])) {
    echo 
htmlspecialchars($_SESSION["hlaska"], ENT_QUOTES):
}
 

a hlasku ulozis takhle

Kód: Vybrat vše

<?php
session_start
();

if (
$data) {
    
$_SESSION["hlaska"] = "Hlaska";
}
 
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
pajacz17
Level 3
Level 3
Příspěvky: 592
Registrován: 22 bře 2014 22:31

Re: Rozevírací seznm a zobrazení dat

Příspěvek od pajacz17 »

Ok, snad se povede. Díky moc.
Odpovědět

Zpět na „Web-tipy a vaše weby“