Autor | Zpráva | ||
---|---|---|---|
Jcas Profil * |
#1 · Zasláno: 13. 6. 2014, 08:22:25
Zatím testuji funkčnost.
Za <select> se mi zobrazila 1 a nemůžu pochopit, kde se tam vzala.
- pak jsem si přidal "ahoj" abych ověřil volání funkce.
- pak jsem si přidal $elem[1] .= $prvek[0]; , abych si ověřil, že z Db se skutečně vybral záznam. (Zatím tam je jeden jediný - "hlodavci")
Kde se tam bere ta jednička a proč se nezobrazí option? data z DB a volání FC case 1: $sql = "SELECT `skupina` FROM `zvirata` GROUP BY `skupina`"; if ($result = $mysqli->query($sql)) { while ($row = $result->fetch_assoc()) { $option[] = $row['skupina']; } $result->close(); } else { presmerujNaChybu(56, 1534); } $action = 'action="index.php?pridat&step=2" '; echo zobrazForm('skupina', $option, $action); break; // část funkce pro zobrazení formuláře function zobrazForm($what, $prvek, $action=' ') { $hodnota=array(); $elem = array(); if($what=='skupina' || $what=='plemeno' || $what=='zvire') { // select na výběr, neb input pro nové plemeno, či zvíře $elem[1] = '<select name="'.$what.'">'; $elem[1] .= $prvek[0]; $elem[1] .= array_walk($prvek, "zobrazOption", $what); $elem[1] .= $what=='skupina' ? zobrazOption('Jiná', 'jina', $what) : zobrazOption('Jiné', 'jine', $what) ; $elem[1] .= '</select>'; $opt = array('name' => 'new_'.$what, 'type' => 'text'); if(isset($_POST['new_'.$what])) {$opt['value'] = $_POST['new_'.$what];} else {$opt['disabled'] = ' ';} $elem[2] = zobrazInput($opt); // a zobrazení option function zobrazOption($value, $key, $prvek) { $t = 'ahoj'; $t .= '<option name="'.$key.'" value="'.$value.'" '; if($_POST[$prvek]==$value) { $t .= 'selected '; } $t .= '>'; $t .= $value; $t .= '</option>'; return $t; } No a jaký mám výstup: <form method="post" name="form_chz" action="index.php?pridat&step=2"> <select name="skupina"> Hlodavci1ahoj <option name="jina" value="Jiná">Jiná</option> </select> <input name="new_skupina" type="text" disabled=""> <input name="enter" type="submit" value="Uložit"></form> |
||
Mike8748 Profil |
Jcas:
„$elem[1] .= array_walk($prvek, "zobrazOption", $what);“ ta jednička se bere tady. funkce array_walk vrati true/false podle toho jestli je procházení pole úspěšné nebo ne. nevrací (tak ty předpokládáš) výsledek volání callback funkce. edit: co ty nejspíš chceš bude použít array_map pro vytvoření nového pole (v kterém budou výsledky callback funkce, tedy string s optionem) a do $elem[1] potom přiřadit výsledek join("",$novePole); |
||
Jcas Profil * |
#3 · Zasláno: 13. 6. 2014, 09:24:00
Takže špatné použití array_walk = lépe číst manuál.
Díky |
||
Časová prodleva: 11 let
|
0