Как запомнить данные, выбранные в <select> из MySQL

358
13 июля 2017, 02:02

Логика следующая: у меня есть форма ввода данных состоящая из

 <select name="status">
      <option value="1">Не выбрано</option>
      <option value="2">Не женат</option>
      <option value="3">Не замужем</option>
      <option value="4">Встречаюсь</option>
      <option value="5">Помолвлен</option>
      <option value="6">Женат</option>
      <option value="7">Замужем</option>
      <option value="8">В гражданском браке</option>
      <option value="9">Влюблён</option>
      <option value="10">Всё сложно</option>
      <option value="11">В активном поиске</option>
    </select>

Мне нужно чтобы данные из select отправились в БД с названием users в поле status Затем чтобы поле select запомнило значение из БД и выводило не первое значение из select, а соответствующее значение, которое хранится в БД

И, к примеру можно было вывести данное значение в формате:

  <?php echo 'Ваш статус' . 'соответствующее значение из БД'; ?>

Вот весь код:

 <?php
$save = $_POST;
if( isset($save['do_login']) )
{
mysqli_query($connection, "UPDATE `users` SET `name`='".$save['name']."',  `date`='".$save['date']."', `status`='".$save['status']."' WHERE id=$id ");
echo '<div style="background-color: green; color: white; font-weight: light; font-size: 17px;">Данные сохранены!</div>';
}
?>
<form action="/new.php" method="POST">
<?php 
$data_save = mysqli_query($connection, "SELECT * FROM `users` WHERE `id`=$id");
if( mysqli_num_rows($data_save) <= 0 ) 
{
    echo 'Unexpected error!';
} else 
{
  $get_data_user = mysqli_fetch_assoc($data_save);
}
?>
<input type="text" name="name" placeholder="name" value="<?php echo $get_data_user['name'] ?>">
<input type="text" name="date" placeholder="date" value="<?php echo $get_data_user['date'] ?>">
<p>Статус</p>
<select name="status">
  <option value="1">Не выбрано</option>
  <option value="2">Не женат</option>
  <option value="3">Не замужем</option>
  <option value="4">Встречаюсь</option>
  <option value="5">Помолвлен</option>
  <option value="6">Женат</option>
  <option value="7">Замужем</option>
  <option value="8">В гражданском браке</option>
  <option value="9">Влюблён</option>
  <option value="10">Всё сложно</option>
  <option value="11">В активном поиске</option>
</select>
<button type="submit" name="do_login">Войти</button>
</form>
Answer 1

Select отправляется так же, как и input. Т.е. доступ к выбранному идет по $_POST['status'] Чтобы при выборе данных из БД выбиралось это значение, нужно соответствующему полю присвоить selected. Сделать это можно с помощью jQuery/js. На jQuery это выглядит так:

$('select option[value=' <?php echo $user['user_status']; ?>']').attr('selected', 'selected');
READ ALSO
Архитектура приложения yii2 с админкой на angular 2

Архитектура приложения yii2 с админкой на angular 2

Как лучше устроить архитектуру приложения на базе yii2 и админкой на angular2? Пока что есть приложение yii2-basic с самим сайтом, модуль yii2 api (rest-api)

316
Кросс-доменные cookie не видит сервер

Кросс-доменные cookie не видит сервер

Скрипт на сайте http://client делает кросс-доменный ajax запрос на сервер http://serverХочу, чтобы сервер увидел cookie с этого сайта

295
Реализация условного запроса к БД

Реализация условного запроса к БД

Добрый день сообществоПрошу помощи в следующем:

225
Почему in_array() срабатывает 1 раз?

Почему in_array() срабатывает 1 раз?

Почему срабатывает 1 раз? Выводит 1, а потом всё время 2Хотя in_array() содержит все поля, которые проверяет

232