Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Ošetření formuláře při znovunačtení stránky

Potřeboval bych nakopnout správným směrem. Mám následující formulář:

<FORM action="slovnik_pridat1.php" method="post">
Slovo: <br>
<input type="text" name="slovo" size="25" maxlength="200"><br><br> 
Vysvětlení pojmu:<br>
<TEXTAREA  class="textik" id="pojem" name="pojem" rows=10 wrap=VIRTUAL tyle="width: 90%"></TEXTAREA><br> 
 
Oblast: 
            <select name="oblast" size="1"> 
            <option value="jine">Jiné
            <option value="biologie">Biologie 
            <option value="historie">Historie
            <option value="knihy">Knihy
            <option value="postavy">Postavy
            <option value="realie">Reálie
            <option value="zemepis">Zeměpis
            </select>
            <br /><br>
            
            
 Zařazení do knihy: <br>

<?
if (!$i){$i=1;}
$n=$i;
while ($i > 0): 
$i--;
?>


<select name="<? echo $i; ?>" size="1"> 
            <option value=""> 
            <option value="jine">Jiné
            <? $query1 = mysql_query("SELECT nazev, nazev_bez FROM bibliografie WHERE ((cyklus='konias') || (cyklus='bakly')) ORDER BY nazev;");		
               while($rec = mysql_fetch_array($query1)) {
               echo  '<option value="'.$rec["nazev_bez"].'">'.$rec["nazev"].'<br>';
               } ?>
            </select><br>
            
<? endwhile; //konec cyklu ?>  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="slovnik_kon_pridat.php?i=<? $i=$n+1; echo $i; ?>">PŘIDAT DALŠÍ KNIHU</a>          
<br>

<input type="hidden" name="n" value="<? echo $n; ?>">            
<input type="hidden" name="cyklus" value="konias">
<br><br><input align="right" type="submit"   class="tlacitko" value="ODESLAT" onClick="return posli()">
<input  align="right" type="submit" border="0" value="RESET">
</FORM>		

Problém je v tom, že když přidám další knihu ($i se navýší) dojde ke znovunačtení celé stránky a tím ztrátě dat napsaných ve formuláři.
Mám tam upozorňovací text, že je nejprve třeba vybrat zařazení do knihy (knih), ale někdo může být nepozorný.
Dalo by se to ošetřit buď tak, aby data zůstaly kde jsou, nebo tak, aby když uživatel napíše něco do formuláře, aniž by měl předem vybrané knihy vyskakovací okno, či bublina ho upozorní?

Poraďte prosím

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Díky za reakce. Stránka se znovunačte při odeslání PŘIDAT DALŠÍ KNIHU. K chybám stránky: Zatím jde…
Brmboš 21.08.2009 23:15
Brmboš
S tým submitom by to bol jeden formulár. Na serveri by si zistil, že stlačil tlačidlo pre pridanie k… nový
los 21.08.2009 23:45
los
Aha, už chápu jak to myslíš. Díky, vyzkouším to. poslední
Brmboš 22.08.2009 08:48
Brmboš

Díky za reakce.

Stránka se znovunačte při odeslání PŘIDAT DALŠÍ KNIHU.

K chybám stránky:
Zatím jde o pracovní formát, bez velkých ošetřování. A s vkládáním html kódu se přímo počítá - je to nutné pro vlastní výstup. Jde o admin přístupy, takže to budou poučení lidé.

S tím submitem - to by tedy byl další formulář "ve formuláři"? A jak ošetřit odeslání všech proměnných na závěr?

S tým submitom by to bol jeden formulár. Na serveri by si zistil, že stlačil tlačidlo pre pridanie knihy a zobrazil by si o jeden select viac. V prípade, že by si zistil, že stlačil tlačidlo pre odoslanie, tak by si to spracoval tak ako doteraz.

Mohlo by to vyzerať cca takto:

$count = 0;
while (isset($_POST["select-$count"]))
  ++$count;

if (isset($_POST["pridat"]))
  ++$count;
else if (isset($_POST["odeslat"]))
  ;// spracuj vysledok a presmeruj

// zobraz stránku
for ($i = 0; $i < max(1, $count); ++$i)
  ;// zobraz select name="select-1"

Zpět do poradny Odpovědět na původní otázku Nahoru