Autor Zpráva
Pete
Profil *
Zdravim

Poradi mi nekdo, jak pomoci php nastavim FORMULAROVE SELECT
<select name="druh">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>

Na value, kterou chci? Automaticky tam leze prvni v poradi, tj "1".
Pri editaci zaznamu to pak uzivatel musi znovu zvolit, pro ktery druh to chce - 1,2,3.
Predstavoval bych si to tak, ze z datab. zjistim pod kterym druhem to je ulozeno, dal bych si to do promenny $druh
a pak nejak tomu formulari rekl at tam pri vypisovani implicitne nastavi $druh.

Dekuji, Pete
Pete
Profil *
Uz jsem neco nasel, asi nejako takto:

<td colspan=1>Druh: </td>
<td ><select name=druh>";
<?php
echo "<option value="1" "; if ($druh == '1') echo ("selected");
echo ">1</option>"
.
.
.
.
.
atd.
krteczek
Profil
Pete: pokud dáš položky do pole bude se ti to jednodušeji udržovat, koukni níže
dále rozlišuj názvy z POST GET SESSION.. od normálních proměnných, které používáš ve skriptu, chyba kterou stejné názvy způsobují je popsána v tomto threadu: [url=http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&top ic=45997
]http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=4 5 997
[/url]



//nejprimitivnější ošetření $_POST
//a rozlišit vnitřní $druh od vnějšího (když jsou stejné názvy ($druh a $_POST['druh']) může to dělat neplechu při zapnutých register globals
$druh_a = (!empty($_POST['druh']) ? (int)$_POST['druh'] : 0);
$druhy = array(
0 => 'vyberte..',
1 => 'první',
2 => 'druhá',
3 => 'kulatá',
);
$select = '<select name="druh" id="druh">';
foreach($druhy as $key => $foo)
{
$select .= '<option value="' . $key . '"';
$select .= ($key == $druh_a ? ' selected="selected"' : '');
$select .= '>' . $foo . '</option>';
}
$select .= '</select>';
echo $select;

Snad to je bez chyb píšu to bez kontroly...
krteczek
Pete
Profil *
Ufff, musim se tim kodem nejdriv prokousat. vypada to zajimave. Je fakt, ze tam urcite pouzivam $druh a $POST['druh'], problemy mi to sice nedela, ale presne kdyz jsem to psal jsem si rikal, jak to php rozlisi. No a ono to fungovalo,tak sem to nechal bejt. Jdu na to
Pete
Profil *
Mily Krteczku, mohl by jsi mi vysvetlit ten radek na osetreni (nejak PHPfree):
$druh_a = (!empty($_POST['druh']) ? (int)$_POST['druh'] : 0);

Dela se mi z toho radku zle, ostatek mi je vcelku jasny . Dekuji
krteczek
Profil
$druh_a = (!empty($_POST['druh']) ? (int)$_POST['druh'] : 0);
slovy: pokud $_POST['druh'] není prázdná (prázdný řetězec nebo nula), udělej z ní číslo typu integer, a vlož ji do proměnné $druh_a, jinak nastav $druh_a = 0

Jiný zápis téhož:


if(!empty($_POST['druh']))
{
$druh_a = (int)$_POST['druh'];
}
else
{
$druh_a = 0;
}
Toto téma je uzamčeno. Odpověď nelze zaslat.