次のコードを書きました:
<script> <br> function setSelectByValue(domSelect,strVal){ <br> var opts = domSelect.options; <br> for(var i=0,j=opts.length;i<j></j> <br> </ ; <br /> これにより、選択値 1 のオプションが正しく表示され、データベースからクエリされた値を次のように置き換えます。 <br /> <script> <br /> function setSelectByValue(domSelect,strVal){ <br /> var opts = domSelect.options; <br /> for (var i=0,j=opts.length;i<j;i++){ <br /> ue (document.getElementById('paid_type'),'<?php echo ($row[11 ])?>'); <br> </script>
ディスカッションに返信 (解決策)
ブラウザーを使用しています: ソース ファイルを表示します
シミュレーション後は問題ありません。
<?php$row[11] = 1;?><select id="paid_type"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option></select><script>function setSelectByValue(domSelect,strVal){ var opts = domSelect.options; for(var i=0,j=opts.length;i<j;i++){ if(opts[i].value===strVal){ return domSelect.selectedIndex=i; }}}setSelectByValue(document.getElementById('paid_type'),'<?php echo ($row[11])?>');</script>
それでもできない場合は、opts[i] を出力し、ループ本体内の strVal の値を比較して、問題がどこにあるかを確認できます。
case 'str': eq_select1=op=='eq'?'selected':''; eq_select2=op=='neq'?'selected':''; eq_select3=op=='include'?'selected':''; eq_select4=op=='not_include'?'selected':''; result="<select name='op'><option value='eq' "+eq_select1+">等于</option><option value='neq' "+eq_select2+">不等于</option><option value='include' "+eq_select3+">包含</option><option value='not_include' "+eq_select4+">不包含</option></select>";
テストは成功しました。
ブラウザの Firebug を使用して、エラーがあるかどうかを確認しますか?