- - PR -
PHPでのコンボボックス
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-31 14:43
こんにちわ。
PHPで作成したプログラムで携帯電話で見た時、 コンボボックス内の項目を選択し更新ボタンを押すと、 コンボボックスのあるページを更新したいのですが、 ボタンを押しても何の反応も無く変化しません。 初歩的な事で申し訳ありませんがご教授をお願いします。 ※PC側でWebではボタンを押すと変化します。 ※PC側でのWebではファイルを単純に読み直してしまうため、 コンボボックスで選択した項目のままにならず、初期の 項目に戻ってしまいます。 ソースは以下の通りです。 ファイル名 data01.php <?php print "<form action=data01.php method=post>"; $c = $str[0][0]; echo $c; print "<select name=data_select>"; for($k=24; $k>0; $k--){ print "<option value={$k}>{$str[$k][0]}</option>"; } print "</select><input type=submit value=更新></form>"; print "<br><br>"; print "<table border=0>"; print "<tbody>"; for($j=1; $j<11; $j++){ print "<tr><td>{$str[0][$j]}<br></td>"; switch($_GET['data_select']){ case 1: print "<td align=right><a href=graph{$j}>{$str[1][$j]}</a><br></td></tr>"; break; default: print "<td align=right><a href=graph{$j}>{$str[24][$j]}</a><br></td></tr>"; break; } } print "</tbody>"; print "</table>"; ?> | ||||||||||||
|
投稿日時: 2005-04-08 08:15
こんにちは。
とPOSTしているわけですから、
ここは$_POSTではありませんか? caseが1とdefaultしかないので、1を選んだときしか内容が変わりませんよね? | ||||||||||||
|
投稿日時: 2005-04-11 10:40
>めぐ様
返事ありがとうございます。 申し訳ありません。 Case1 〜 Case24まで存在しています。 中略していたので”中略”を記述していれば良かったです。 私のミスです。 本題ですが、このままだとmethod=postで $_POSTでOKでした。 しかし、ファイルを再度読み直す事により コンボボックス内のデータ(時間)が初期値に 戻ってしまうので選択したものをselectedで 固定したところpostで送るデータが変わってしまいました。 本来 print "<select name=data_select>"; for($k=24; $k>0; $k--){ print "<option value={$k}>{$str[$k][0]}</option>"; の$kには1〜24が入っていたのでCase1〜Case24により データの更新をおこなっていたのですが、 <?php printf( ($_POST['select']==$str[$k][0]) ? "selected" : ""); ?> このようにコンボボックスで選択されたデータを保持しようとすると $kがコンボボックスのデータ10:00が代入されてしまいCaseが使えなくなってしまいました。 もともとCSVから取り出したデータなので時間になってしまうと条件分岐の際、 0:00〜23:59まで全て作らなければならないのかなと思いました。 (でも、この発想からすると、CSVの一行読み出しが出来ないような気がします。。。) Foreach? プログラム経験がほとんど無いため調べながらやっているのですがどうも うまくいきません。 なにか良い方法がありましたら ご教授のほどよろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-04-26 09:09
もう解決したでしょうか。
未だに、何をしたいのかが理解できていないのですが、
ファイルを読み直すというのは、GETでページを取得するということですか? その場合は、初期値に戻るのは当然の動作だと思いますけど。 初めてそのページにアクセスした場合でも、一度”更新”ボタンを押した後の リロード時でも、$_SERVER["REQUEST_METHOD"] は 同じ GET なわけですから。 POSTされた$kの値のところに selectedをつけるだけではだめですか?
|
1