0

ログインしたユーザーのアクセスに基づいて、特定のオプションにデフォルト設定したいドロップダウン コントロールがあります。たとえば、ドロップダウンには 10 個のオプションがありますが、10 個のオプションすべてを表示できるのは管理者だけです。ただし、大多数のユーザーは 1 つのオプションにしかアクセスできません。ドロップダウンの値が null であるかどうかに基づいて、ページのコンテンツが非表示/表示されます。

質問:上記の例を使用すると、管理者がログインしている場合、ドロップダウンをデフォルトで [オプションを選択] にする必要があります。このようにして、ページのコンテンツは非表示になります。一方、1 のみにアクセスできるユーザーがログインしている場合は、デフォルトでその 1 にする必要があります。この方法では、何も選択する必要がなく、デフォルトでページ コンテンツが表示されます。どうすればこれを行うことができますか?

以下は、選択が行われたときにドロップダウンが表示するものを処理する現在のコードです。

PHP/HTML

// Hide/Show main content div 
<?php
if (isset($_GET['src'])) {
    $src = $_GET['src'];
} else {
?>
<style>
#divmain { display: none; }
</style>
}
<?php } ?>

// Start of form, header, etc.
<select name="select1" id="select1">
<?php
$sql = getOptions();
$data = makeConnection($sql);
if ($src == null) {    // If value is null, default to 'Select an option'
    echo "<option selected value=\"\" disabled=\"disabled\">--Select an option--</option>";
    while ($row = odbc_fetch_array($db)) {
        echo "<option value=\"".$row['content']."\">".$row['content']."</option>";
    }
} else {    // If value not null keep the selected value selected
    while ($row = odbc_fetch_array($db)) {
        if ($row['content'] == $src) { $selected = " selected "; }
        else { $selected = " "; }
        echo "<option value=\"".$row['content']."\" ".$selected.">".$row['content']."</option>";
    }
}
?>
</select>


JS

// Pass selected value on change
$('#select1').change(function() {
    var sel = $(this).val();
    location.href = "page1.php?src=" + sel;
}


SQL

// Hardcoding user for testing purposes, THIS WILL BE CHANGED
function getOptions() {
    $results = "SELECT content, userid FROM table WHERE userid = 'username'";

    return $results;
}


不明な点があればお知らせください。

4

2 に答える 2