原因が分かれば、たわいのないことだったのでしょうが、はまってしまった。
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>”;
とするだけのことでした。あ~あつかれた!