Autor Zpráva
Andrej.B
Profil
Zdravim,

riesim ako si zapamatat Select, co zadal uzivatel po kontrole formulara, ked je nejaka chyba.

Mam formular kde si uzivatel vybera zo slectu id_druh_material:
<select name="id_druh_material" class="form-control custom-select" id="validationCustom01" placeholder="Druh materialu" required>
<option value="">Druh materialu</option>
 <?php

 $result = $conn->query("SELECT id_druh_material,nazov_druh_material FROM druh_material");
 while ($row = $result->fetch_array()) {

echo "<option value=\"".$row["id_druh_material"]."\"";
// tu bude nejaka podmienka na ziskanie toho co bolo vybrate $_POST[id_druh_material]
echo ">".$row["nazov_druh_material"]."</option>\n";
    
    /* free result set */
                                         
}
 $result->close();

 ?>
 
 </select>
 

po stlaceni VYTVOR sa mi spravi kontrola formularu to co vybral uzivatel ci napisal do inputu... Vypise chyby ak najde aby si ich mohol uzivatel opravit. A aby nemusel vypisovat vsetko, tak mu do inputov
<input 
                type="text"            
                name="info_material" 
                class="form-control" 
                placeholder="info_material" 
                size="25" 
                value="<?php echo $_POST[info_material];?>"
                id="validationCustom01" 
                required>
ktore su dobre vypisane , vypisem premenu $_POST[tocojedobre], len neviem ako pridat potom to SELECTED ak bol vybraty napriklad id_druh_material s ID 1 po kontrole formulara.
<option value="1" selected>pena</option>
<option value="2">pena</option>
<option value="3">pena</option>
<option value="4">pena</option>

Diky za pomoc...
Ikki
Profil
Možná bych to zkusil přes podmínku, tedy něco jako if($hodnota['tocojedobre'] == XYZ) ? 'selected':''
Andrej.B
Profil
Ikki:
jj podminka, ale ako? :)
Obcas mi to nepali, pritom jednoduche, pravdepodobne nie koser...

 <?php

 $result = $conn->query("SELECT * FROM druh_material");
 while ($row = $result->fetch_array()) {

echo "<option value=\"".$row["id_druh_material"]."\"";

if($row['id_druh_material'] == $_POST[id_druh_material]){ echo ' selected';  } 
echo ">".$row["nazov_druh_material"]."</option>\n";
    
    /* free result set */
                                         
}
 $result->close();

 ?>

funguje a nastavi selected na ten co bol zadany pred odoslanim formu... Ale ked kuknem do vygenerovaneho kodu cez ZDROJ STRANKY v kontextovom menu OPERY, tak nic z nich nieje napisane selected...

<select name="id_druh_material" class="form-control custom-select" id="validationCustom01" placeholder="Druh materialu" required>
        <option value="">Druh materialu</option>
 <option value="1">pena</option>
<option value="2">koza</option>
<option value="3">tkanina</option>
<option value="4">uplet</option>
<option value="5">podšívka</option>
<option value="6">qwdqwd</option>
<option value="7">wdwdwdwdw</option>
 
 </select> 

Vypada to rovnako ako pred generovanim formulara... Zaujimave... A vlastne su prazdne vsetky value="" z formulara aj ked mi ich na stranke vypise tam kde bolo nieco zadane, cez Inspectora vsetko vidno, asi nejaky BUG v Opere...
Ikki
Profil
Podle kódu co jsi zaslal ti chybí '' u $_POST[id_druh_material], nicméně kdyby jsi poslal náhled, můžu ti poradit blíž. Podmínku máš dle všeho správně až na '' které ti chybí. Je divné, že value je prázdné, stejně jako nevypsaný selected.
Andrej.B
Profil
Tak robi to len v Opere ze su prazdne value z formularov, v Chrome sa normalne cez view code objavia, zaujimave. BUdem musiet viac pouzivat na ladenie ten Inspector.

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