php - значение раскрывающегося списка не может быть вставлено в MySQL - PullRequest
0 голосов
/ 29 мая 2018

Я сделал раскрывающийся список для выбора уровня приоритета одного контакта, приоритет - это атрибут таблицы person, который имеет тип ENUM.Выпадающий список находится в HTML-форме, и я хочу отправить его в базу данных MySQL.Но как-то значение не может быть вставлено.Кто-нибудь может мне помочь?

Код

//PHP
  if(isset($_POST["priority"]) && $_POST["priority"] == 'not_selected'){
    $err_priority = "Please assign the priority level!";
  }
  else {
    $priority = $_POST["priority"];
  }

  $sql1 = "INSERT INTO person (priority) VALUES (?)";
if ($stmt1 = mysqli_prepare($conn, $sql1) or die(mysqli_error($conn))) {
          mysqli_stmt_bind_param($stmt1, 's', $priority);
}
mysqli_stmt_execute($stmt1);
mysqli_stmt_close($stmt1);



//HTML-Form
  <div class="form-group <?php echo(!empty($err_priority)) ? 'has-error' : ''; ?>">
    <label>Priority</label>
    <?php
      echo '<select name="priority">';
      $sql = "SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'person' AND COLUMN_NAME = 'priority'";
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_array($result);
      $enumlist = explode(  ",", str_replace("'", "", substr($row['COLUMN_TYPE'], 5, (strlen($row['COLUMN_TYPE'])-6))));

      foreach ($enumlist as $value_p) {
        echo '<option value="$value_p">'.$value_p.'</option>';
        }
        echo '</select>';
    ?>
    <span class="help-block"><?php echo "$err_priority"; ?></span>
  </div>
<div class="form-group">
    <input type="submit" class="btnsml" value="Add Contact">
</div>

Где я допустил ошибку?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Проблема в том, что вы не устанавливаете значения в теге выбора.

 echo '<select>';
 foreach ($enumlist as $value_p) {
        echo '<option value="'.$value_p.'">'.$value_p.'</value>';
 }
 echo '</select>';
0 голосов
/ 29 мая 2018

Проблема здесь:

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

Вы не интерполируете содержимое $value_p.Измените это, как это:

echo '<option value="' . $value_p . '">' . $value_p . '</option >';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...