1

こんにちは、ドロップダウン メニューがあります。選択時に Ajax/JavaScript を実行して、選択した値をデータベース内に配置します。次回メニューでページを開くときに、ドロップダウン オプションを選択して、データベース値。このようにして、ユーザーはデータベース内で何が選択されているかを知ることができます。

これが私のドロップダウンメニューのコードです:

<?php echo "<select name='status' id='$id' idc='$idc'>" ?>
  <option value="">Option:</option>
  <option value="val1">Val1</option>
  <option value="Val2">Val2</option>
  </select>

メニューからデータベース内に情報を保存している関数は次のとおりです。

<script>
$(document).ready(function(e) {
$('select[name=status]').change(function(){

        selectstatus = $("select[name=status]").val();  
        var id = $(this).attr('id');
        var idc = $(this).attr('idc');
        $.ajax({
        type: "POST",
        url: "selectbackend.php",
        data: {"selectstatus": selectstatus, "id": id, "idc": idc
       },
        })

        .fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end change
});//end ready
</script>

これは、ドロップダウン メニューからの情報を格納するためのデータベースとの接続です。

<?php
$selectstatus = $_POST['selectstatus'];
$id = $_POST['id'];
$idc = $_POST['idc'];

$host = "localhost";
$user = "user";
$password = "pass";
$dbname = "test";

$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}

    $query = " UPDATE subscriptions
           SET status = '$selectstatus'
           WHERE user_id='$idc' AND curso_id='$id'";

$result = mysqli_query($cxn, $query) or die ("could not query database 1");
?>
4

2 に答える 2

1

プログラムで html を構築し、単一のブロックをエコーアウトして、作成時に選択した値をテストすることができます。

$option_html = '';
$options = array( 
    'val1' => 'Value 1',
    'val2' => 'Value 2'
 );

foreach( $options as $key => $value ) {
    // is_selected should be a function to determine if value is
    // the value stored in the db for this particular case
    $selected = is_selected( $key ) ? 'selected' : '';
    $option_html .= "<option {$selected} value=\"{$key}\">{$value}</option>";
}

この種のことを頻繁に行う場合、テンプレート エンジン は非常に便利なツールになります。

于 2013-10-15T16:47:14.993 に答える
0

これは非常に簡単ですが、ドロップダウンでアイテムを選択済みデフォルトとして設定する必要があるかどうかは、テーブルのどの列が定義するかによって異なります。だからここに:

コードをレンダリングする前に、テーブルで select ステートメントを実行して、ドロップダウン リストのすべてのオプションを選択します。テーブルに、テーブル エントリをデフォルトとして設定する必要があるかどうかを示す列selected (boolean)があり、ここからは非常に簡単であると仮定します。

echo "<select name='status' id='$id' idc='$idc'>";
// Loop over all options
foreach($results as $option){

    // If option has value selected set as true then append selected="selected" to it.
    if($option->selected)
    {
        echo '<option selected="selected" value="' . $option->value . '">' . $option->value . '</option>'; 
    } else {
        echo '<option value="' . $option->value . '">' . $option->value . '</option>';
    }
}
</select>
于 2013-10-15T16:39:21.323 に答える