忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

【PHP】「select」タグが入力不可でも値をPOSTするには「option」タグを「disabled」に設定する
PHP でシステムを組んでいると、データの中の区分値などを select タグを用いて入力します。 この区分値を入力不可にしようとして select タグの部分に disabled="disabled" とすることが多いです。

ただこの方法ですと、画面上は select ボックスは表示されるのですが POST 処理で値が渡ってきません。 以下のソースをブラウザで表示して OK を押下すると「select value = 」の所には何も表示されません。
<?php
$strTestSel = isset($_POST['testsel']) ? $_POST['testsel'] : '';
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<h2>selcet test</h2>
<span>
select value = <?php echo($strTestSel); ?>
</span>
<form method="post" >
<select name="testsel" disabled="disabled">
    <option value=""></option>
    <option value="1">TEST1</option>
    <option value="2" selected="selected">TEST2</option>
    <option value="3">TEST3</option>
</select>
<br />
<input type="submit" value="OK">
</form>
</body>
</html>

select タグに disabled="disabled" とするのではなく option タグに選択されていないところを disabled="disabled" とし 選択されたいるところに selected="selected" とします。 上記のソースを以下の様に変更しました。

<?php
$strTestSel = isset($_POST['testsel']) ? $_POST['testsel'] : '';
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<h2>selcet test</h2>
<span>
select value = <?php echo($strTestSel); ?>
</span>
<form method="post" >
<select name="testsel">
    <option value=""  disabled="disabled"></option>
    <option value="1" disabled="disabled">TEST1</option>
    <option value="2" selected="selected">TEST2</option>
    <option value="3" disabled="disabled">TEST3</option>
</select>
<br />
<input type="submit" value="OK">
</form>
</body>
</html>

この様にするとドロップダウン表示をした時に selected="selected" とした option タグが通常の表示となり disabled="disabled" としたタグは選択できない灰色の表示になります。











PR

コメント

コメントを書く