8

PHP を使用してオプションを選択しようとしていますが、アイデアが不足しています。

以下は私が今まで試したコードです:

<select>
<option value="1">Yes</options>
<option value="2">No</options>
<option value="3">Fine</options>
</select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">

それで、私は何をしなければなりませんか?

4

9 に答える 9

15

プログラマーは怠け者です...ええと....効率的です....私は次のようにします:

<select><?php
    $the_key = 1; // or whatever you want
    foreach(array(
        1 => 'Yes',
        2 => 'No',
        3 => 'Fine',
    ) as $key => $val){
        ?><option value="<?php echo $key; ?>"<?php
            if($key==$the_key)echo ' selected="selected"';
        ?>><?php echo $val; ?></option><?php
    }
?></select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">
于 2012-09-05T00:42:32.840 に答える
5
<select>
<option value="1" <?php if ($myVar==1) echo 'selected="selected"';?>>Yes</options>
<option value="2" <?php if ($myVar==2) echo 'selected="selected"';?>>No</options>
<option value="3" <?php if ($myVar==3) echo 'selected="selected"';?>>Fine</options>
</select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">

あなたの質問を正しく理解していれば、これは非常にシンプルで簡単な方法です。

于 2010-08-13T17:14:47.147 に答える
5

あなたはこれを使うことができます..

<select name="select_name">
    <option value="1"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='1')?' selected="selected"':'');?>>Yes</option>
    <option value="2"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='2')?' selected="selected"':'');?>>No</option>
    <option value="3"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='3')?' selected="selected"':'');?>>Fine</option>
</select>
于 2013-04-29T10:01:47.833 に答える
2

まず、select に名前を付けます。次に、次のようにします。

<select name="my_select">
<option value="1" <?= ($_POST['my_select'] == "1")? "selected":"";?>>Yes</options>
<option value="2" <?= ($_POST['my_select'] == "2")? "selected":"";?>>No</options>
<option value="3" <?= ($_POST['my_select'] == "3")? "selected":"";?>>Fine</options>
</select>

それが行うことは、選択されたものがそれぞれで同じであるかどうかを確認し、見つかったときに「選択された」とエコーすることです。

于 2010-08-13T17:14:48.320 に答える
0

selectフォーム入力を作成するために配列を使用していると思います。その場合は、配列を使用します。

<?php
    $selected = array( $_REQUEST['yesnofine'] => 'selected="selected"' );
    $fields = array(1 => 'Yes', 2 => 'No', 3 => 'Fine');
 ?>
  <select name=‘yesnofine'>
 <?php foreach ($fields as $k => $v): ?>
  <option value="<?php echo $k;?>" <?php @print($selected[$k]);?>><?php echo $v;?></options>
 <?php endforeach; ?>
 </select>

そうでない場合は、上記のループを展開しても、配列を使用できます。

 <option value="1" <?php @print($selected[$k]);?>>Yes</options>
 <option value="2" <?php @print($selected[$k]);?>>No</options>
 <option value="3" <?php @print($selected[$k]);?>>Fine</options>

私が知らないことに注意してください:

  • 入力にどのように名前を付けているので、名前を付けました。
  • サーバー側でフォーム入力を処理する方法、私は使用しまし$_REQUESTた、

使用しているフレームワークの要件に一致するようにコードを調整する必要があります(存在する場合)。

また、多くのフレームワークでは、ビュー専用スクリプトで代替構文を使用するのが通例です。

于 2012-12-26T21:10:45.877 に答える
0

インラインifを使用します

($_POST['category'] == $data['id'] ? 'selected="selected"' : false)
于 2013-10-16T09:08:44.890 に答える
0

2 つの php ファイルがあり、これを作成しましたが、動作します。(これは一例です) 最初のコードは 1 つのファイルからのもので、2 番目のコードは 2 つのファイルからのものです。

<form action="two.php" method="post">
<input type="submit" class="button" value="submit" name="one"/>
<select name="numbers">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
</form>



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

if($_POST['numbers']=='1')
{
$a='1' ;
}
else if($_POST['numbers']=='2')
{
$a='2' ;
{
else if ($_POST['numbers']=='3')
{
$a='3' ;
}

}
于 2014-01-16T12:47:24.963 に答える
-1

これは私が思いついた解決策です:

<form name = "form1" id = "form1" action = "#" method = "post">
  <select name = "DropDownList1" id = "DropDownList1">
<?php
$arr = array('Yes', 'No', 'Fine' ); // create array so looping is easier
for( $i = 1; $i <= 3; $i++ ) // loop starts at first value and ends at last value
{
  $selected = ''; // keep selected at nothing
  if( isset( $_POST['go'] ) ) // check if form was submitted
  {
    if( $_POST['DropDownList1'] == $i ) // if the value of the dropdownlist is equal to the looped variable
    {
      $selected = 'selected = "selected"'; // if is equal, set selected = "selected"
    }
  }
  // note: if value is not equal, selected stays defaulted to nothing as explained earlier
  echo '<option value = "' . $i . '"' . $selected . '>' . $arr[$i] . '</option>'; // echo the option element to the page using the $selected variable
}
?>
  </select> <!-- finish the form in html -->
  <input type="text" value="" name="name">
  <input type="submit" value="go" name="go">
</form>

私が持っているコードは、値が数値順(昇順または降順)の整数である限り機能します。それが行うことは、html でドロップダウン リストを開始し、php コードで各オプション要素を追加することです。ただし、1、4、2、7、6 などのランダムな値がある場合は機能しません。各値は一意である必要があります。

于 2014-01-31T19:50:12.397 に答える
-1

この回答は特定の受信者には関係ありませんが、他の受信者には役立つかもしれません。データベースから返された値によって正しい「オプション」を「選択」することで、同様の問題がありました。display:none を適用したタグを追加することで解決しました。

<?php
$status =  "NOT_ON_LIST";

$text = "<html>
<head>
</head>
<body>
<select id=\"statuses\">
   <option value=\"status\" selected=\"selected\" style=\"display:none\">$status</option>
   <option value=\"status\">OK</option>
   <option value=\"status\">DOWN</option>
   <option value=\"status\">UNKNOWN</option>
</select>
</body>
</html>";

print $text;
?>
于 2012-09-05T00:29:56.200 に答える