Autor Zpráva
Dejvik
Profil *
Dobry den,
narazil jsem na problem se kterym si nevim rady... Jedna se o to, ze si z databaze vypisu do selectu ruzne udaje, ktere se muzou, ale nemusi editovat. Pokud udaje v selectu zmenim neni probelm. Ovsem probelm nastava v pripade, ze DRUHY select nezmenim. V tom pripade se promenna $_POST[ 'edit_kraj' ] (zmena v prvnim select boxu na to nema vliv). Zkousel jsem pridat dalsi select boxy a kdyz nedojde ke zmene vzdy se posle jen prvni... Moc diky za rady, tady je kod:

echo '<form action="zpracuj.php'" method="post">';

$dotaz_spol = MySQL_Query("SELECT id_spol, zkratka_spol FROM typy_spol");
echo '<select name="edit_typ">';
while ($zaznam_spol = mysql_fetch_array ($dotaz_spol)) {
if ($zaznam["typ_firmy"] == $zaznam_spol["id_spol"])
echo '<option selected value="'.$zaznam_spol["id_spol"].'">'.$zaznam_spol["zkratka_spol"];
else
echo '<option value="'.$zaznam_spol["id_spol"].'">'.$zaznam_spol["zkratka_spol"];
}
echo '</select>';

$dotaz_kraj = MySQL_Query("SELECT id_kraje, nazev_kraje FROM kraje");
echo '<select name="edit_kraj">';
while ($zaznam_kraj = mysql_fetch_array ($dotaz_kraj)) {
if ($zaznam["kraj"] == $zaznam_kraj["id_kraje"])
echo '<option selected value="'.$zaznam_spol["id_kraje"].'">'.$zaznam_kraj["nazev_kraje"];
else
echo '<option value="'.$zaznam_kraj["id_kraje"].'">'.$zaznam_kraj["nazev_kraje"];
}
echo '</select>';

echo '</form>';
Dejvik
Profil *
ja jsem tu vetu nedopsal:-)
V tom pripade se promenna $_POST[ 'edit_kraj' ] NEPOSLE
peta
Profil
Dejvik
Priste to zkus popsat srozumitelne, krok za krokem, s odkazem na stranku.

1. pro vypis selectu si udelam funkci.
2. Pokud chces menit obsah vygenerovane HTML stranky, je treba ji odeslat serveru ke zpracovani. A to bud tlacitkem nebo nekterou JS Ajax metodou. Chapej, www prohlizec neumi zpracovat php a nema pristup k udajum z jinych pocitacu. Kdyz ty vybiras SELECT, delas to ve www prohlizeci na HTML strance, od ktere uz server a PHP generator jsou odriznuti.
Cili si prohledni forum javascript, tam se na sdruzene selecty ptaji dost casto.
3. Pokud 2 neresi problem, tak jsem dotaz nepochopil.
Dejvik
Profil *
asi jsem to mel popsat srozumitelneji...OK.
1) Vygeneruji si html stranku, kde je formular, nejake input boxy a 2 select boxy.
2) Do hodnot techto input boxu vypisu udaje z db a jako oznaceny prvek v select boxu pouziju ciselny udaj rovnez ulozeny v db.
3) Nyni se obsah inout boxu a select boxu muze menit. O input boxy mi nejde, s nima problem nemam.
4) Zmenim napr., nektere input boxy a prvni select box, druhy select box necham beze zmeny.
4) Tyto udaje formulare odeslu ke zrpracovani dalsim souborem. Zde bych mel mit v poli $_POST udaje z formulare. Vsechny tam jsou az na vyse zminenou z druheho select boxu, ta je prazdna i kdyz by v ni mela byt poslana hodnota.
5) Udaji z formulare prepisu hodnhoty v db, jenze pokud pokud nebyla poslana hodnota z druheho select boxu, nebude ulozena zadna hodnota.

Tohle yb slo samozrejme vyresit tak, ze ve zpracovani formulare zjistim, zda byla tato hodnota zmenena a pokud ne, tak hodnotu prepisovat nebudu, ale spis me zajima proc to nejde..

Odkaz vam bohuzel neposlu, protoze to mam zatim u sebe na localhostu i kdyz by to bylo pro nazornost asi lepsi... No pokud to bue nutne tak to nekam nauploaduju
Dejvik
Profil *
Omlouvam se, ale jiz jsem prisel na chybu.. Byla to naprosto banalni chyba pouzitim spatneho udaje z databaze.. Hledal jsem chybu tam kde vubec neni :-)
peta
Profil
Aha, tady jsem to nerekl, tak vsude rikam:
soubor.php
soubor.php.txt
tyhle 2 odkazy v mnohem usnadni problem s hledanim.
Jak to popisujes, stacilo si prohlednout vygenerovane HTML a zjistim, ze tam neco neni.

jinak je dobre zapnout si zobrazovani PHP chyb
cz.php.net/error_reporting
a umet vypsat chyby v mysql, pokud nastanou
$dotaz = "...";
$x = mysql_query($dotaz) or die($dotaz.'<hr>'.mysql_error());
Dejvik
Profil *
OK, diky za rady, na tohle jsem vubec nepomyslel a bude to urcite ucinne!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0