0

基本的に、ドロップダウンリストで特定のオプション/値が選択されたときにメッセージを表示する PHP スクリプトを作成しようとしています。

ここにいくつかの明確化のためのhtmlがあります

 <select name="month">
 <option value="0">0</option>
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
</select>

基本的に、オプション、たとえば最初のオプション (1 月) が選択されたときに、PHP スクリプトがステートメントを出力するようにします。

4

4 に答える 4

2

選択が変更されたときにアクションを実行する場合は、javascript、できれば jQuery などのクライアント側のソリューションが必要です。

PHPはあなたが求めていることを行うことができません。フォームが送信されたときに何かを行うことはできますが、選択が変更されたときはできません。

http://api.jquery.com/change/

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

$(document).ready(function(){
    $("select").on("change", function(){
         alert("The value is " + $(this).val());
    });
});

選択が変更されたときにアラートが生成されます。

于 2013-07-19T20:08:34.543 に答える
1

おそらくクライアント側の方がうまくいくでしょうが、PHPでやりたかったので、連想配列を使用した簡単なソリューションを次に示します。

somefile.php :

<?php 
$months = array(1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May',
    6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November',
    12 => 'December');

if(isset($_POST['sb'])){

$input = $_POST['month'];
echo "You selected ".$months[$input];

}
?>
<form action="" method="post">
<select name="month">
<option value="1">January</option>
<option value="2">Febuary</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>

</select>
<input type="submit" name="sb"/>
</form>

メニューを動的に生成したい場合は、次のようにすることができます。

<?php
$curr_month = date("m");
$month = array (1=>"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$select = "<select name=\"month\">\n";
foreach ($month as $key => $val) {
    $select .= "\t<option val=\"".$key."\"";
    if ($key == $curr_month) {
        $select .= " selected=\"selected\">".$val."</option>\n";
    } else {
        $select .= ">".$val."</option>\n";
    }
}
$select .= "</select>";
echo $select;
?>

お役に立てれば!

于 2013-07-19T20:20:40.953 に答える
0

それはPHPでできることではありません。PHP はサーバー側で実行されます。つまり、サーバー側のすべての処理が完了すると、静的ページが配信されます。何かを変更するには、サーバーに送信して再配信する必要があります。

ここで使用するのは Javascript です。Codecademy jQuery トラックをチェックしてください。クライアント側の作業を希望どおりに行う方法を理解するのに非常に役立ちます。http://www.codecademy.com/tracks/jquery

基本的onchange="function()"に、別の領域にメッセージを表示するために javascript 関数を呼び出す select の属性が必要です。

例(あなたが望むものではありませんが、原則を示しています:

<script type="text/javascript">
    var changed = function() {
        alert("Value of select is now: " + event.target.value);
    };
</script>

<form action="index.php" method="POST"> 
  <select name="month" onchange="changed()">
    <option value="0">0</option>
    <option value="1">January</option>
    <option value="2">Febuary</option>
    <option value="3">March</option>
    <option value="4">April</option>
  </select>
</form>
于 2013-07-19T20:21:26.817 に答える
-1

html が次のようになっている場合:

<form action="index.php" method="POST"> 
  <select name="month">
    <option value="0">0</option>
    <option value="1">January</option>
    <option value="2">Febuary</option>
    <option value="3">March</option>
    <option value="4">April</option>
  </select>
  <input type="submit" value="Select">
</form>

次に、index.php で:

echo "You selected " . $_POST['month'];
于 2013-07-19T20:11:36.203 に答える