アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
PHPとMysqlでプログラムを作成しています。
プルダウンメニューを選択し、Submitボタンを押した後も選択された値を保持したままの状態にしたいのです。
以下のようなプログラムでdata2の場合だと保持ができますが、dataの場合は「すべて」に戻ってしまいます。
以上・未満を使用する場合の値の保持はどのようにすればよいのでしょうか?
宜しくお願い致します。

<select name='data'>
<option value=' ' <?php if($data==" "){print " selected";} ?>>すべて
<option value=' AND (data >= 1.8 AND data < 2.0) '<?php if($data>=1.8 AND $data < 2.0){print " selected";} ?>>1.8GHz以上 2.0GHz未満</option>
<option value=' AND (data >= 2.00) '<?php if($data>=2.00){print " selected";} ?>>2.0GHz以上</option>
<option value=' AND (data >= 2.80) '<?php if($data>=2.80){print " selected";} ?>>2.8GHz以上</option>
</select>
<select name='data2'>
<option value='%' <?php if($data2=="%"){print " selected";} ?>>すべて
<option value='1MB'<?php if($data2=="1MB"){print " selected";} ?>>1MB</option>
<option value='2MB'<?php if($data2=="2MB"){print " selected";} ?>>2MB</option>
</select>
<input type="submit" value="絞り込む" name="submit1">

A 回答 (1件)

もしかしてSQLのWHERE句につなげるつもりでしょうか?


プログラム的には「もっともやってはいけない」ことのひとつです。
とりかえしのつかないことになる前に「インジェクション対策」を
基礎から勉強してください。

とりあえず、以下のようにすると可読性もたかくなりますので参考になれば。

<?php
$selected['data'][$_REQUEST['data']]=" selected";
$selected['data2'][$_REQUEST['data2']]=" selected";

print <<<eof
<form method="get" action="{$_SERVER['PHP_SELEF']}">
<select name="data">
<option value="">すべて
<option value="1.8-2.0"{$selected['data']['1.8-2.0']}>1.8GHz以上 2.0GHz未満</option>
<option value="2.0up"{$selected['data']['2.0up']}>2.0GHz以上</option>
<option value="2.8up"{$selected['data']['2.8up']}>2.8GHz以上</option>
</select>
<select name="data2">
<option value="%"{$selected['data2']['%']}>すべて
<option value="1MB"{$selected['data2']['1MB']}>1MB</option>
<option value="2MB"{$selected['data2']['2MB']}>2MB</option>
</select>
<input type="submit" value="絞り込む" name="submit1">
</form>

eof;
?>

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
色々と勉強し直しながら、
回答を参考にさせて頂きながら頑張ってみます。

お礼日時:2007/02/15 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!