0

mysql の結果に基づいて、php コンボボックス "<select>" を選択する方法を探しています。

実際には、mysql テーブルの既存の値を編集するために使用される php フォームに取り組んでいます。最初のフォームは、編集するレコードの ID を渡すだけで、次のようになります <a href="editCalendar.php?id=15">Click to edit</a>

editCalendar.php のコードは次のとおりです。

<?php
    include("dbpath.php");
    $id =  htmlspecialchars($_GET["id"]);

    $sql="Select * from event_Date where eventid=" . $id;
    $result=mysql_query($sql);

    // Check result
    // This shows the actual query sent to MySQL, and the error. Useful for debugging.
    if (!$result) 
    {
        $message  = 'Invalid query: ' . mysql_error() . "\n";
        $message .= 'Whole query: ' . $query;
        die($message);
    }

    while($row = mysql_fetch_assoc($result))
    {
    $name=$row["EventTitle"];
    $close=$row["OpenOrClose"];
    $remarks=$row["Remarks"];
    $date=$row["EventDate"];
    $type=$row["Type"];
    }
?>

で取得された値は$close、同じフォームで「SelectClosedOrOpen」を選択するために使用されます。つまり、ユーザーは、入力されたリストから事前に選択されたオプションを取得します。

<select id="SelectClosedOrOpen">
<option value="3">Select</option>
<option value="0">Open</option>
<option value="1">Closed</option>
</select>

つまり、$close0 の場合は<option value="0">Open</option>選択する必要があり、$close の値が 1 の場合<option value="1">Closed</option>はフォームロード時に自動的に選択する必要があります。

4

2 に答える 2

2

selectedそこに属性を書き込むだけです。これを試して

<select id="SelectClosedOrOpen">
<option value="3" <?php echo ($close == 3) ? 'selected="selected"': ''; ?>>Select</option>
<option value="0" <?php echo ($close == 0) ? 'selected="selected"': ''; ?>>Open</option>
<option value="1" <?php echo ($close == 1) ? 'selected="selected"': ''; ?>>Closed</option>
</select>
于 2012-08-13T12:25:50.637 に答える
0

私は数年前にこの関数を作成しました。お役に立てば幸いです。基本的に、オプションの配列とオプションの値を事前に選択する必要があります。選択の OPTIONS が返されるため、ID や JS などをカスタマイズできる SELECT タグを作成する必要があります。

function drop_down_box_options_from_array($choices,$default="") 
{
        $output= '';
        // $choices is contructed using $choices[]=array("value","Displayed Choice");
        while (list ($key, $val) = each ($choices))
        { 
                $output.= '<option value="';
                $output.= $choices[$key][0];
                if ($default==$choices[$key][0])
                {
                        $output.= '" selected="selected" >';
                }
                else
                {
                        $output.= '">';
                }
                $output.= $choices[$key][1];
                $output.= '</option>';
                $output.= "\n";
        }
        return $output;
}

あなたのシナリオを使用して:

<select id="SelectClosedOrOpen" name="OpenOrClose">
<?php
// defined here for clarity, but can be defined earlier ie in a config file
$choices[]=array('3', 'Select');
$choices[]=array('0', 'Open');
$choices[]=array('1', 'Closed');
echo drop_down_box_options_from_array($choices, $row['OpenOrClose']);
?>
</select>
于 2012-08-13T12:29:31.147 に答える