Пытался отобразить данные в <select>, но ничего не отображается в базе данных при отправке

0
if(isset($_POST['submit'])){
    $patientname = $_POST['patientname'];
    $task = $_POST['task'];
    $description = $_POST['description'];
    $status = $_POST['status'];
    $date = date('Y-m-d H:i:s');
    $query = $db ->query("INSERT INTO task VALUES('','$patientname', '$task', 
'$description', '$status', '$date')");


<form method="post">
  <div class="form-group">
  <label for="assignedto">Assigned To</label>
  <select class="form-control" name="patientname" required>
      <option>Select Patient</option>
      <?php 
      $stmt=$dbcon->prepare("SELECT * FROM users");
      $stmt->execute();
      while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
          extract($row);
          echo "<option value=''> $type $username $Lastname</optioin>";
      }

  ?
    </select>
    <button type="submit" class="btn btn-primary" name="submit">Submit</button>
</form>

Я не знаю, в чем проблема, но когда я отправляю эти данные в базу данных, он показывает пустое. Надеюсь, вы можете помочь мне, ребята. то есть вывод в базе данных. Весь код работает в одном файле php

Изображение 174551

  • 1
    Вы делали какие-либо отладки самостоятельно? Это будет стоить вашего времени, чтобы узнать, как сделать даже основные отладки.
  • 0
    Да, я уже сделал .. Только этот тег <select> не предоставляет никаких данных ... что касается tas, description, status и date, все они появляются в базе данных.
Показать ещё 6 комментариев
Теги:

2 ответа

1
Лучший ответ

У ваших опций нет установленных значений. Строка в атрибуте value - это то, что входит в переменную $_POST['patientname'].

Так что у тебя есть:

echo "<option value=''> $type $username $Lastname</optioin>";

Перейдите к следующему:

echo "<option value='$username $Lastname'> $type $username $Lastname</option>";
//                        ^-add the value you want                      ^- fixed typo

Однако у вас есть некоторые другие проблемы, которые вам необходимо преодолеть, например, предотвращение SQL-инъекций, а также экранирование данных в html, чтобы html не прерывался, если имена пользователей имеют что-то в них, которое считается html. Например, лучше всего повторить следующие варианты:

echo '<option value="'. htmlspecialchars($username) .'">'. htmlspecialchars("$type $username $Lastname") .'</option>';
  • 0
    ОООХХХ это действительно сработало !! Я думал, что значение не нужно, так как я отображал переменные между <option> </ option> Спасибо @IncredibleHat Ваше имя действительно вас устраивает, ха-ха, большое спасибо!
  • 0
    @ Гервин Я добавил еще немного к ответу, чтобы помочь вам с любой возможной поломкой html имен. Например, если имя было Joe "stinky" Doe ... htmlspecialchars помогает предотвратить разрыв.
Показать ещё 2 комментария
0

С вашим кодом я вижу много проблем.

Прежде всего, у вас нет никаких значений в вашем варианте.

Я предполагаю, что вам понадобится что-то вроде этого:

echo "<option value='$username $Lastname'> $type $username $Lastname</option>";

Затем вы никогда не отправляете description task или status поэтому вы должны иметь их в своей форме как поля <input>. Что-то вроде этого:

<input type="text" name="task"></input>

Затем у вас есть синтаксические проблемы, такие как вы никогда не открываете и не закрываете теги php здесь

<?php
if(isset($_POST['submit'])){
$patientname = $_POST['patientname'];
$task = $_POST['task'];
$description = $_POST['description'];
$status = $_POST['status'];
$date = date('Y-m-d H:i:s');
$query = $db ->query("INSERT INTO task VALUES('','$patientname', '$task', 
'$description', '$status', '$date')");
?>

а позже у вас есть только ? вместо ?>

а также </optioin> вместо </option>

И вы никогда не закрываете <div class="form-group"> с </div>

  • 0
    Я дам тебе голос. Он принял мое слишком быстро. Гервин всегда может изменить свой выбор!
  • 1
    @IncredibleHat Я не против, какой вопрос будет выбран, пока OP понимает, что не так с его кодом и умеет решать его проблемы :) Спасибо за upvote, хотя!
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню