Forum » Programiranje » PHP, JS in option HTML tag
PHP, JS in option HTML tag
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Glodko ::
Nikakor mi ne uspe. V formi imam dve select vnosni polji. Narejeno imam tako, da ko izbereš prvo vrednost, se na podlagi tega avtomatsko zgenerira drugi select input. Imam takole, recimo:
Izberi kraj .... ko uporabnik izbere kraj se zgenerira drugi drop-down meni z option tagi, kjer lahko izbere osebo.
Težava je v tem, da bi sedaj rad vsaki osebi (ime priimek) dodal še opis v teh option tagih, ki pa je shranjen v bazi kot "text" podatkovni tip.
JS/PHP koda:
Se pravi rad bi še tisti opis, skrajšan na 50 znakov dodal v option tag. Kar pa nikakor noče delat. Ko dodam poleg "opis" vse skupaj neha delati. Če pustim, tako kot je sedaj v kodi, ko prikaže samo ime in priimek pa je vse v redu. Edina razlika je v tem da je opis v bazi podatkovnega tipa "text". Kakšna ideja kako bi tole lahko rešil?
Izberi kraj .... ko uporabnik izbere kraj se zgenerira drugi drop-down meni z option tagi, kjer lahko izbere osebo.
Težava je v tem, da bi sedaj rad vsaki osebi (ime priimek) dodal še opis v teh option tagih, ki pa je shranjen v bazi kot "text" podatkovni tip.
JS/PHP koda:
$mod_result = mysql_query("SELECT id, ime, priimek, SUBSTRING(opis, 1, 50) FROM osebe WHERE id='$c_id' ORDER BY id DESC") or die(mysql_error()); while($m=mysql_fetch_array($mod_result)) { $ime_polno=$m[1].' '.$m[2]; //deluje $ime_polno=$m[1].' '.$m[2].' '.$m[3]; //ne deluje ?> selbox.options[selbox.options.length] = new Option("<?=$ime_polno;?>","<?=$m[0];?>"); <? }
Se pravi rad bi še tisti opis, skrajšan na 50 znakov dodal v option tag. Kar pa nikakor noče delat. Ko dodam poleg "opis" vse skupaj neha delati. Če pustim, tako kot je sedaj v kodi, ko prikaže samo ime in priimek pa je vse v redu. Edina razlika je v tem da je opis v bazi podatkovnega tipa "text". Kakšna ideja kako bi tole lahko rešil?
![](https://static.slo-tech.com/stili/avatar_gray.gif)
DeeJay ::
Imaš v opisu kake dvojne narekovaje? Če imaš potem jih morš "eskejpat" z htmlspecialchars()
Druga stvar, ki pa ni povezana s tvojim problemom, je pa bolj pregledna... zamenjaj mysql_fetch_array() z mysql_fetch_assoc() in potem kliči $m['id'], $m['ime'], $m['priimek'] namesto $m[0], $m[1], .... tko boš imel manj napak in ne bo ti treba vedno gledat kateri index spada h katerem polju. Poleg tega pa ni potreben pravilen vrstni red klicanja polj v SELECT stavku.
edino pri SUBSTRING(opis, 1, 50) boš moral dodat alias :
In upam, da $c_id preverjaš preden ga nucaš za bazo? Drugače ga daj vsaj mysql_real_escape_string(). Mal varnosti ne škodi.
new Option("<?=htmlspecialchars($ime_polno);?>","<?=$m[0];?>");
Druga stvar, ki pa ni povezana s tvojim problemom, je pa bolj pregledna... zamenjaj mysql_fetch_array() z mysql_fetch_assoc() in potem kliči $m['id'], $m['ime'], $m['priimek'] namesto $m[0], $m[1], .... tko boš imel manj napak in ne bo ti treba vedno gledat kateri index spada h katerem polju. Poleg tega pa ni potreben pravilen vrstni red klicanja polj v SELECT stavku.
edino pri SUBSTRING(opis, 1, 50) boš moral dodat alias :
SELECT id, ime, priimek, SUBSTRING(opis, 1, 50) AS kratek_opis FROM osebe WHERE id='$c_id' ORDER BY id DESC
In upam, da $c_id preverjaš preden ga nucaš za bazo? Drugače ga daj vsaj mysql_real_escape_string(). Mal varnosti ne škodi.
SELECT id, ime, priimek, SUBSTRING(opis, 1, 50) AS kratek_opis FROM osebe WHERE id='" . mysql_real_escape_string($c_id) . "' ORDER BY id DESC
Zgodovina sprememb…
- spremenil: DeeJay ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
DeeJay ::
Probi še tole:
<?php $mod_result = mysql_query("SELECT id, ime, priimek, SUBSTRING(opis, 1, 50) AS kratek_opis FROM osebe WHERE id='" . mysql_real_escape_string($c_id) . "' ORDER BY id DESC") or die(mysql_error()); while ($m = mysql_fetch_assoc($mod_result)) { $ime_polno = $m['ime'] . ' ' . $m['priimek'] . ' ' . $m['kratek_opis']; $ime_polno = str_replace(array ("\r\n", "\n", "\r"), " ", $ime_polno); $ime_polno = htmlspecialchars($ime_polno); ?> selbox.options[selbox.options.length] = new Option("<?php echo $ime_polno;?>","<?php echo $m['id'];?>"); <?php } mysql_free_result($mod_result); ?>
Zgodovina sprememb…
- spremenil: DeeJay ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Glodko ::
Hvala tole pa zdaj deluje. ![:)](https://static.slo-tech.com/smeski/icon_smile.gif)
Sedaj moram samo še ugotoviti, kako odstranim razne " in podobne zadeve iz teksta ven.
![:)](https://static.slo-tech.com/smeski/icon_smile.gif)
Sedaj moram samo še ugotoviti, kako odstranim razne " in podobne zadeve iz teksta ven.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
DeeJay ::
Se mi je zdelo da bo :)
problem je v "nevidnih" znakih za novo vrstico "\n" "\r\n", ki jih očitno potem Option ne zna prežvečit.
problem je v "nevidnih" znakih za novo vrstico "\n" "\r\n", ki jih očitno potem Option ne zna prežvečit.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
hobbit ::
Hvala tole pa zdaj deluje.
Sedaj moram samo še ugotoviti, kako odstranim razne " in podobne zadeve iz teksta ven.
str_replace
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Spletni obrazec s pogojemOddelek: Izdelava spletišč | 1515 (1037) | alenkah |
» | Samodejno odpiranje slik v mapiOddelek: Pomoč in nasveti | 878 (790) | mayhem |
» | [php, mysql] sortiranje izpisa iz bazeOddelek: Izdelava spletišč | 2623 (2142) | Binji |
» | MSN Messenger 7Oddelek: Programska oprema | 3489 (3071) | Tilen |
» | Podtke iz baze v ListboxOddelek: Izdelava spletišč | 855 (796) | Trubadur |