私はいくつかのオプションを持つドロップダウンメニューを持つ簡単なWebページを持っています。ユーザーの選択を取得してから、同じ選択をWebページに出力できるようにしたいです。これは私が今まで持っているコードです。
\\Pretty standard code for getting the header and title and <\div> etc.
<select id="animal" name="animal">
<option value="0">--Select Animal--</option>
<option value="Cat">Cat</option>
<option value="Dog">Dog</option>
<option value="Cow">Cow</option>
</select>
<?php
if($_POST['submit'] && $_POST['submit'] != 0)
{
$animal=$_POST['animal'];
location.reload();
}
print_r($animal);
?>
\\Pretty standard code for getting the footer etc.
下図のように、ドロップダウンボックスが正しく表示されます。すべてのオプションが表示されますが、オプションを選択しても何も起こりません。この場合、選択したもの、つまり「Cat」を表示します。 (現時点では起きていない)
間違っていることを教えてください。最終的に私はドロップダウンで他のことをしたいと思っています。しかし、これがうまくいくようになれば、データを取得してページを更新する方法を理解できます。次のステップは比較的簡単です。また、このコードは私のページのテンプレートファイルの一部です。必要に応じてコード全体をアップロードできます。
更新: 最終的に私はこのようなものを作りたいです。つまり、ユーザーが選択したフィルターに基づいて関連する投稿を表示することができます(それが役立つ場合)。
これはどう:
<?php
$arr = ["Cat", "Dog", "Cow" ];
if( $_POST['animal']){
$animal=$_POST['animal'];
echo $animal;
}
?>
<form name="f" id="a" method="post" action="">
<select id="animal" name="animal" onchange="this.form.submit()" >
<option value="0">--Select Animal--</option>
<?php
foreach ($arr as $a){
if($a == $animal){
echo "<option value='{$a}' selected >$a</option>";
}else{
echo "<option value='{$a}' >$a</option>";
}
}
?>
</select>
</form>
最後に変数をunset
することもできますが、PHPにはガベージコレクタもあります。このコードはあなたが少なくともPHP 5.4+を使うことを想定しています、そうでなければ$arr = array("Cat", "Dog", "Cow" );
を通して配列を定義します