Заполните выпадающий список из базы данных и установите значение по умолчанию - PullRequest
0 голосов
/ 07 июня 2018

Прямо сейчас у меня есть работающее решение для заполнения HTML <select> / <option> -распадающего контента через PHP / MYSQLI из моей database: listoption.

базы данных.:

DATABASE NAME: 
# listoption

TABLES:
# ID INT(11) *Primary AI
# listoption_item VARCHAR(255)

Вот другой код (не mysqli connect, а все потом ...)

<?php

    $result = $mysqli->query("select * from listoption");

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {

        $listoption_item = $row['listoption_item'];

        echo '<option value="'.$listoption_item.'">'.$listoption_item.'</option>';

      }

    echo "</select>";

?>

Но проблема в том, что я хочу, чтобы один из этих вариантов былзаполняется через этот запрос, чтобы быть selected.И параметр, который нужно выбрать, должен определяться параметром в URL, например: index.php?id=1.Так что теперь мне нужно как-то добавить IF / ELSE и $_GET['id']; в код, чтобы он идентифицировал, совпадает ли идентификатор из базы данных с заполненным элементом, и затем установить его на выбранный.

Есть идеи?Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Вы можете переписать код следующим образом:

<?php
    $id = $_GET['id'];
    $select = "";
    $result = $mysqli->query("select * from listoption");

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {
        $row_id = $row['ID'];
        if($row_id == $id){
           $select = "selected";
        }
        $listoption_item = $row['listoption_item'];

        echo '<option value="'.$listoption_item.'" selected="'.$select.'">'.$listoption_item.'</option>';

      }

    echo "</select>";

?>
0 голосов
/ 07 июня 2018

Используйте следующий код: -

<?php

$selectedId = isset($_GET['id'])?$_GET['id']:0;
$result = $mysqli->query("select * from listoption");

echo "<select id='list' name='list'>";

  while ($row = $result->fetch_assoc()) {

    $listoption_item = $row['listoption_item'];

    echo '<option value="'.$listoption_item.' .(($selectedId>0)?:" selected ":"").'">'.$listoption_item.'</option>';

  }

echo "</select>";

?>
0 голосов
/ 07 июня 2018

Вы можете сделать это, как указано ниже:

<?php

    $result = $mysqli->query("select * from listoption");
    $id = ($_GET['id'])? $_GET['id'] : '';

    echo "<select id='list' name='list'>";

      while ($row = $result->fetch_assoc()) {

        $listoption_item = $row['listoption_item'];
        $sel = ($id == $row['id'])? 'selected="selected"':'';
		
        echo '<option value="'.$listoption_item.'" '.$sel.'>'.$listoption_item.'</option>';  // $sel will deside when to set `selected`
        
      }
    
    echo "</select>";
    
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...