リストボックスではまった!!

原因が分かれば、たわいのないことだったのでしょうが、はまってしまった。

50ぐらいのデータから、複数選択してDBに格納することが必要になりました。

一覧で既選択を見やすくするのに、リストボックスを4つ並べてみました。

multipleで複数選択を可能にし、name=list1~list4で選択アイテムを投げてみました。

DBには単にカンマでつなげて格納し、取り出すときにexplodeで配列に取り込み、さてどうしたら

selectedで既選択にすればいいかなと悩んだ末に

for($i=0;$i<12;$i++){

if(in_array($i,$array)){

print”<OPTION value=””.$i” selected>”.pg_result($r,$i,1).”</OPTION>”;

}else{

print”<OPTION value=””.$i”>”.pg_result($r,$i,1).”</OPTION>”; }

と4つ並べてみました。(1つのリストボックスに12アイテムづつ並べたので、12単位で)

うまくいったように見えたのですが、最初のリストボックスの最初のアイテムが

いつもselectedになってしまいます。

in_arrayで”0”は適切な検索が出来ないのだろうと思い、何かほかの方法がないかと

考えてみてたら・・ふと最初の50ぐらいのデーターは、1から番号を振っていたのを思い出しました。

if(in_array($i,$array)){

print”<OPTION value=””.$i” selected>”.pg_result($r,$i,1).”</OPTION>”;を

if(in_array(pg_result($r,$i,0),$array)){

print”<OPTION value=””.pg_result($r,$i,0).”” selected>”.pg_result($r,$i,1).”</OPTION>”;

とするだけのことでした。あ~あつかれた!