Autor | Zpráva | ||
---|---|---|---|
ROLAND Profil * |
#1 · Zasláno: 2. 3. 2015, 11:15:21 · Upravil/a: ROLAND
Ahoj,
jsem naprostý začátečník v PHP. Momentátně řeším problém, že mám záznam (řádek), který tahám z MySQL a u něj tlačítko editace. Přes id přenáším hodnoty do formuláře. Ovšem u seznamů se mi v prohlížeči nezobrazí správná položka. Vždycky porovnávám ID_GARANT z jedné tabulky s hodnotou ID_GARANT z druhé tabulky z databáze (resp. dotazu). Ve zdrojáku potom u správné položky selected="selected" mám, ale nezobrazí se to správně. Prosím o jakoukoliv radu. Zde je problémová část kódu: <?php include ("spojeni.php"); $menu = $_GET['menu']; $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost FROM data WHERE id_data='$menu'"; $result = mysqli_query($conn, $sql); echo "<form action='update_data.php?$url&menu=$menu' method='post'> echo "<label for='id_garant'>Vyber garanta dat:</label><br /> <select name='id_garant' id='id_garant'>"; $sql3 = "SELECT id_garant, nazev FROM garant GROUP BY nazev"; $result3 = mysqli_query($conn, $sql3); while($row3 = mysqli_fetch_assoc($result3)) { echo '<option value="'.$row3["id_garant"].'"'; if($row3["id_garant"] == $row["id_garant"]){ echo ' selected="selected"';} else{ echo ' selected=""';} echo '>'; echo $row3["nazev"]; echo '</option>'; } echo "</form>"; mysqli_close($conn); ?> Při kopírování mi tam utekl jeden středník. Ale vím o tom. Problém bude nějkde jinde. |
||
Taps Profil |
ROLAND:
zápis jsem ti poupravil include ("spojeni.php"); $menu = $_GET['menu']; $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost FROM data WHERE id_data='$menu'"; $result = mysqli_query($conn, $sql); $row = mysql_fetch_assoc($result); echo "<form action='update_data.php?$url&menu=$menu' method='post'> <label for='id_garant'>Vyber garanta dat:</label><br /> <select name='id_garant' id='id_garant'>"; $sql3 = "SELECT id_garant, nazev FROM garant GROUP BY nazev"; $result3 = mysqli_query($conn, $sql3); while($row3 = mysqli_fetch_assoc($result3)) { echo '<option value="'.$row3["id_garant"].'"'; if($row3["id_garant"] == $row["id_garant"]){ echo ' selected="selected"';} else{ echo ' selected=""';} echo '>'; echo $row3["nazev"]; echo '</option>'; } echo "</form>"; mysqli_close($conn); ?> |
||
mimochodec Profil |
echo '<option value="'.$row3["id_garant"].'"'; if($row3["id_garant"] == $row["id_garant"]) { echo ' selected="selected"'; } echo '>'.$row3["nazev"].'</option>'; Ten else a selected="" je zbytečný, vyhoď ho. Jestli to nepomůže, dej vygenerovaný kód na http://kod.djpw.cz a ukaž.
|
||
ROLAND Profil * |
#4 · Zasláno: 2. 3. 2015, 12:14:12
Pomohlo to. Díky moc.
|
||
Časová prodleva: 15 dní
|
|||
ROLAND Profil * |
#5 · Zasláno: 17. 3. 2015, 10:55:45 · Upravil/a: ROLAND
Mám velmi podobný problém. Tentokrát se jedná o checkbox a ne o option. Potřebuju aby se mi zatrhly ty checkboxy, jejichž id jsou napsáno v atributu format z prvního dotazu ($sql) ve formátu například: 1, 2, 5
$menu = $_GET['menu']; $sql = "SELECT id_data, nazevdat, meritko, nahled, ukazkaodkaz, popis, popis2, poskytovani, prispevatel, format, id_garant, historie, souradsystem, id_typ, id_licence, znalost FROM data WHERE id_data='$menu'"; $result = mysqli_query($conn, $sql); $row = mysql_fetch_assoc($result); $sql2 = "SELECT id_format, nazev FROM format"; $result2 = mysqli_query($conn, $sql2); $pole=explode(", ",$row["format"]); if (mysqli_num_rows($result2) > 0) { foreach ($pole as $hodnota){ while($row2 = mysqli_fetch_assoc($result2)) { echo '<input type="checkbox" value="'.$row2["id_format"].'" name="checkbox_formaty[]" id="case'.$row2["id_format"].'"'; if ($hodnota == $row2["id_format"]){ echo " checked='true'"; } echo " />"; echo "<label for='case".$row2['id_format']."'>".$row2['nazev']."</label>"; }}} v toto hvíli se mi zatrhne pouze první položka |
||
Keeehi Profil |
while($row2 = mysqli_fetch_assoc($result2)) { echo "<input type=\"checkbox\" value=\"$row2[id_format]\" name=\"checkbox_formaty[]\" id=\"case$row2[id_format]\"".(in_array($row2["id_format"], $pole) ? ' checked="true"' : '')." /><label for=\"case$row2[id_format]\">$row2[nazev]</label>"; } ROLAND: „id jsou napsáno v atributu format z prvního dotazu ($sql) ve formátu například: 1, 2, 5“ Jde o špatný náverh databáze. Viz Některé časteji řešené dotazy pro MySQL - FAQ » Více hodnot ve sloupci |
||
Časová prodleva: 10 let
|
0