Stránka 1 z 1

Rozevírací seznm a zobrazení dat

Napsal: 13 pro 2016 11:06
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

Re: Rozevírací seznm a zobrazení dat

Napsal: 13 pro 2016 18:18
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.

Re: Rozevírací seznm a zobrazení dat

Napsal: 14 pro 2016 06:21
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

Re: Rozevírací seznm a zobrazení dat

Napsal: 14 pro 2016 16:53
od CZechBoY
Vsak to resis tema podminkama dole, ne? Nebo co mas v tech souborech blok1-blok5?

Re: Rozevírací seznm a zobrazení dat

Napsal: 15 pro 2016 06:31
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.

Re: Rozevírací seznm a zobrazení dat

Napsal: 15 pro 2016 09:19
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 ?>>

Re: Rozevírací seznm a zobrazení dat

Napsal: 15 pro 2016 11:01
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

Re: Rozevírací seznm a zobrazení dat

Napsal: 15 pro 2016 13:14
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";
}
 

Re: Rozevírací seznm a zobrazení dat

Napsal: 15 pro 2016 13:57
od pajacz17
Ok, snad se povede. Díky moc.