【发布时间】:2017-04-19 18:45:23
【问题描述】:
我有一个表单,其中包含一个多选框,其中填充了从数据库表中提取的治疗师姓名。
这是我的代码:
<div class="form-group col-sm-6 col-md-4">
<label for="therapist"><strong>Senior Practitional / SP: </strong></label>
<select name="therapist[]" id="therapist" multiple="multiple" class="form-control selectpicker" multiple data-live-search="true" data-live-search-placeholder="Search" data-actions-box="true" data-parsley-trigger="change" required-no>
<?php
require_once('include/database.php');
// read current record's data
try {
// prepare select query
$getUser = "select firstname, lastname, profession from user WHERE user_type = 'therapist'";
$stmt = $con->prepare($getUser);
// execute our query
$stmt->execute();
// store retrieved row to a variable
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// values to fill up our form
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$profession = $row['profession'];
echo '<option id="firstname_' . $row['id'] . '" value="' . $row['id'] . '">' . $row['firstname'] . ' ' . $row['lastname'] . ' - ' . $row['profession'] . '</option> ';
}
}
// show error
catch (PDOException $exception) {
die('ERROR: ' . $exception->getMessage());
}
?>
</select>
</div>
但我面临的问题是,如果我选择多个治疗师,我只能在结果表中得到一个整数 1。
** 第二期 **
我遇到的另一个问题是,我有一个time_of_visit 表单字段,它是一个多选:
<?php $time_of_visit = $time_of_visit; ?>
<div class="form-group col-md-4">
<label for="tov"><strong>Time of Visit: </strong></label>
<select name="tov[]" class="form-control selectpicker" value='<?php echo $time_of_visit; ?>' multiple
data-live-search="true" data-live-search-placeholder="Search" data-actions-box="true" data-parsley-trigger="change" required-no>
<!-- <option selected>Select Visit Time...</option> -->
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "am") echo "selected"; ?> value="am" selected>Am</option>
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "lunch") echo "selected"; ?> value="lunch" selected>Lunch</option>
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "pm") echo "selected"; ?> value="pm">Pm</option>
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "am_pm") echo "selected"; ?> value="am_pm">Am or Pm</option>
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "pm_care") echo "selected"; ?> value="pm_care">Pm Care</option>
<option name="tov[]" <?php if (isset($time_of_visit) && $time_of_visit == "single") echo "selected"; ?> value="5pm" selected>>5pm</option>
</select>
</div>
提交表单后,我收到time_of_visit cannot be null。我猜我可能在数据库中将其设置为Yes NULL,稍后我可以更改,但无论查询失败还是成功,我似乎都无法保留所选选项。
【问题讨论】:
-
对于
$row['id']id必须在SELECT中 -
嗯……这就是重点……让我试试看。
-
我认为 u_mulder 得到了那个。还有一种更好的方法可以检测和设置选项:stackoverflow.com/questions/39070359/… 或 stackoverflow.com/questions/18733545/…
-
@u_mulder...效果不佳...我的结果中有一个字符串
Array...$getUser = "select id, firstname,...while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $id = $row['id']; $firstname = $row['firstname']; -
在什么结果?
标签: php html database validation mysqli