За последние 24 часа нас посетил 21981 программист и 1011 роботов. Сейчас ищут 740 программистов ...

Не выводится значение <select> из БД

Тема в разделе "PHP для новичков", создана пользователем eanautt, 12 июл 2017.

  1. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    У меня следующая проблема:
    Есть скрипт с формой с <select>'ом он при выборе значения отсылает его в БД, но мне нужно, чтобы когда пользователь выбирал значение из <select>, то оно запоминалось.

    PHP:
    1. <?php
    2. require "/includes/lgsn.php";
    3. $connection = mysqli_connect("127.0.0.1", "ее", "123", "ae_db");
    4. ?>
    5.  
    6. <!DOCTYPE html>
    7. <html>
    8. <head>
    9. </head>
    10. <body>
    11.  
    12. <?php if( isset($_SESSION['ud_ae']) ) : ?>
    13.  
    14.  
    15. <?php $id = $_SESSION['ud_ae']['id']; ?>
    16.  
    17. <hr>
    18. <?php
    19. $save = $_POST;
    20. if( isset($save['do_login']) )
    21. {
    22.  
    23. mysqli_query($connection, "UPDATE `users` SET `name`='".$save['name']."',  `date`='".$save['date']."', `status`='".$save['status']."' WHERE id=$id ");
    24.  
    25. echo '<div style="background-color: green; color: white; font-weight: light; font-size: 17px;">Данные сохранены!</div>';
    26.  
    27. }
    28. ?>
    29.  
    30. <form action="/new.php" method="POST">
    31.  
    32. <?php
    33. $data_save = mysqli_query($connection, "SELECT * FROM `users` WHERE `id`=$id");
    34. if( mysqli_num_rows($data_save) <= 0 )
    35. {
    36.     echo 'Unexpected error!';
    37. } else
    38. {
    39.   $get_data_user = mysqli_fetch_assoc($data_save);
    40. }
    41. ?>
    42.  
    43. <input type="text" name="name" placeholder="name" value="<?php echo $get_data_user['name'] ?>">
    44. <input type="text" name="date" placeholder="date" value="<?php echo $get_data_user['date'] ?>">
    45. <p>Статус</p>
    46.  
    47. <script type="text/javascript">
    48.   $('select option[value='<?php echo $get_data_user['status']; ?>']').attr('selected', 'selected');
    49. </script>
    50. <select name="status">
    51.   <option value="Не выбрано">Не выбрано</option>
    52.   <option value="Не женат">Не женат</option>
    53.   <option value="Не замужем">Не замужем</option>
    54.   <option value="Встречаюсь">Встречаюсь</option>
    55.   <option value="Помолвлен">Помолвлен</option>
    56.   <option value="Женат">Женат</option>
    57.   <option value="Замужем">Замужем</option>
    58.   <option value="В гражданском браке">В гражданском браке</option>
    59.   <option value="Влюблён">Влюблён</option>
    60.   <option value="Всё сложно">Всё сложно</option>
    61.   <option value="В активном поиске">В активном поиске</option>
    62. </select>
    63.  
    64. <button type="submit" name="do_login">Войти</button>
    65. </form>
    66.  
    67. <p>Привет, <?php echo $get_data_user['login']; ?></p>
    68. <p>Ваш статус <?php echo $get_data_user['status']; ?></p>
    69.  
    70. <?php else : ?>
    71. <p>Вы не авторизованы!</p>
    72. <?php endif; ?>
    73.  
    74. </body>
    75. </html>
    Если можете, пожалуйста, то вставьте в код то что нужно, чтобы мне понять это в целом как работает. Просто я не понимаю выдернутые строчки кода
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    1. код вроде должен работать
    2. если ты вообще не понимаешь, что там написано, и не хочешь учиться, то надо либо платить, либо искать рыцаря в белом плаще.
     
  3. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    Я понимаю всё что там написано, но дело то в том как раз, что код не работает
    То есть значение, которое выбирает пользователь отправляется в бд, но не сохраняется в этом списке
    --- Добавлено ---
    К примеру: пользователь выбрал - замужем - значение отправляется, но в списке авто-выбранным оно не делается, нужно чтобы это значение (e.g. замужем) было выбранным в списке по-умолчанию, но этого не происходит. И я хочу понять в чем дело
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    вот этот кусок
    HTML:
    1. <script type="text/javascript">
    2.   $('select option[value='<?php echo $get_data_user['status']; ?>']').attr('selected', 'selected');
    появляется в исходном коде страницы? и как выглядит?
     
  5. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    HTML:
    1.  
    2. <select name="status">
    3. <script type="text/javascript">
    4. $('select option[value='Всё сложно']').attr('selected', 'selected');
    5. <!--<option disabled="disabled"></option>-->
    6. <option value="Не выбрано">Не выбрано</option>
    7. <option value="Не женат">Не женат</option>
    8. <option value="Не замужем">Не замужем</option>
    9. <option value="Встречаюсь">Встречаюсь</option>
    10. <option value="Помолвлен">Помолвлен</option>
    11. <option value="Женат">Женат</option>
    12. <option value="Замужем">Замужем</option>
    13. <option value="В гражданском браке">В гражданском браке</option>
    14. <option value="Влюблён">Влюблён</option>
    15. <option value="Всё сложно">Всё сложно</option>
    16. <option value="В активном поиске">В активном поиске</option>
    17.  
     
  6. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    а jQuery то подключен?
     
  7. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
  8. teleoperator

    teleoperator Зэк
    [ БАН ]

    С нами с:
    3 июл 2017
    Сообщения:
    107
    Симпатии:
    29
    HTML:
    1. <!doctype html>
    2.     <head>
    3.         <meta charset="utf-8">
    4.         <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
    5.     </head>
    6.     <body>
    7.         <select name="status" id="status">
    8.             <!--<option disabled="disabled"></option>-->
    9.             <option value="Не выбрано">Не выбрано</option>
    10.             <option value="Не женат">Не женат</option>
    11.             <option value="Не замужем">Не замужем</option>
    12.             <option value="Встречаюсь">Встречаюсь</option>
    13.             <option value="Помолвлен">Помолвлен</option>
    14.             <option value="Женат">Женат</option>
    15.             <option value="Замужем">Замужем</option>
    16.             <option value="В гражданском браке">В гражданском браке</option>
    17.             <option value="Влюблён">Влюблён</option>
    18.             <option value="Всё сложно">Всё сложно</option>
    19.             <option value="В активном поиске">В активном поиске</option>
    20.         </select>
    21.         <script>
    22.             $('#status option[value="<?= $get_data_user['status'] ?>"]').attr('selected', 'selected');
    23.         </script>
    24.     </body>
    25. </html>
    26.  
     
    eanautt нравится это.
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    кавычки одинаковые
    --- Добавлено ---
    замени код на
    PHP:
    1. <script type="text/javascript">
    2.   $('select option[value="<?php echo $get_data_user['status']; ?>"]').attr('selected', 'selected');
    3. </script>
     
    eanautt нравится это.
  10. eanautt

    eanautt Новичок

    С нами с:
    10 июл 2017
    Сообщения:
    27
    Симпатии:
    0
    Все получилось спасибо всем! Огромное спасибо. Вот окончательный код:
    PHP:
    1. <?php
    2. require "/includes/lgsn.php";
    3. $connection=mysqli_connect("127.0.0.1","ее","123","ae_db");
    4. ?>
    5.  
    6. <!DOCTYPE html>
    7. <html>
    8. <head>
    9.  
    10. <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
    11.  
    12. </head>
    13. <body>
    14.  
    15. <?php if( isset($_SESSION['ud_ae']) ) : ?>
    16.  
    17.  
    18. <?php $id = $_SESSION['ud_ae']['id']; ?>
    19.  
    20. <hr>
    21. <?php
    22. $save = $_POST;
    23. if( isset($save['do_login']) )
    24. {
    25.  
    26. mysqli_query($connection, "UPDATE `users` SET `name`='".$save['name']."',  `status`='".$save['status']."', `birthdate`='".$save['birthdate']."' WHERE id=$id ");
    27.  
    28. echo '<div style="background-color: green; color: white; font-weight: light; font-size: 17px;">Данные сохранены!</div>';
    29.  
    30. }
    31. ?>
    32.  
    33.  
    34. <form action="/new.php" method="POST">
    35.  
    36. <?php
    37. $data_save = mysqli_query($connection, "SELECT * FROM `users` WHERE `id`=$id");
    38. if( mysqli_num_rows($data_save) <= 0 )
    39. {
    40.     echo 'Unexpected error!';
    41. } else
    42. {
    43.   $get_data_user = mysqli_fetch_assoc($data_save);
    44. }
    45. ?>
    46.  
    47. <input type="text" name="name" placeholder="name" value="<?php echo $get_data_user['name'] ?>">
    48. <input type="date" name="birthdate" value="<?php echo $get_data_user['birthdate'] ?>">
    49. <p>Статус</p>
    50. <select name="status">
    51.  
    52.  
    53.   <!--<option disabled="disabled"><?php //echo $get_data_user['status']; ?></option>-->
    54.   <option value="Не выбрано">Не выбрано</option>
    55.   <option value="Не женат">Не женат</option>
    56.   <option value="Не замужем">Не замужем</option>
    57.   <option value="Встречаюсь">Встречаюсь</option>
    58.   <option value="Помолвлен">Помолвлен</option>
    59.   <option value="Женат">Женат</option>
    60.   <option value="Замужем">Замужем</option>
    61.   <option value="В гражданском браке">В гражданском браке</option>
    62.   <option value="Влюблён">Влюблён</option>
    63.   <option value="Всё сложно">Всё сложно</option>
    64.   <option value="В активном поиске">В активном поиске</option>
    65. </select>
    66. <button type="submit" name="do_login">Войти</button>
    67. </form>
    68.  
    69. <script type="text/javascript">
    70.   $('select option[value="<?php echo $get_data_user['status']; ?>"]').attr('selected', 'selected');
    71. </script>
    72.  
    73. <p>Привет, <?php echo $get_data_user['login']; ?></p>
    74. <p>Ваш статус <?php echo $get_data_user['status']; ?></p>
    75.  
    76. <?php else : ?>
    77. <p>Вы не авторизованы!</p>
    78. <?php endif; ?>
    79.  
    80. </body>
    81. </html>