如何将PHP数据输入到html多选框中

时间:2014-11-03 23:17:35

标签: php mysql pdo

我正在使用允许创建TEAM的页面。我只想创建一个SELECT框,其中包含所有用户朋友的列表。然后,用户可以选择多个朋友(例如5个)并向这5个人发送请求以加入团队但是遇到问题。我这样做了:

$sql = "SELECT i.*, m.* FROM addclique i JOIN members m ON m.id = i.clique_id WHERE adder_id = :id";
$stmt = $db->query($sql, array('id' => $_SESSION['id']));
while($record = $stmt->fetch()) {
   $surname=$record['surname'];
}

而且:

<select multiple="true" name="category"  val id="category" name="category" class="">
<option value="<?php echo $surname; ?>"><?php echo $surname; ?></option>
</select>

但只有一个朋友的姓氏才能进入方框。 我希望在选择框中有所有朋友,当我选择朋友并点击“发送请求”时,我可以轻松地将ID输入“团队成员”表。

请问我遗失了什么?

3 个答案:

答案 0 :(得分:0)

你几乎拥有它。您需要做的就是循环输出名称而不是存储它们。

<?php
    $sql = "SELECT i.*, m.* FROM addclique i JOIN members m ON m.id = i.clique_id WHERE adder_id = :id";
    $stmt = $db->query($sql, array('id' => $_SESSION['id']));

?>

<select multiple="true" name="category"  val id="category" name="category" class="">
<?php while($record = $stmt->fetch()) : ?>
   <option value="<?php echo $record['surname']; ?>"><?php echo $record['surname']; ?></option>
<?php endwhile; ?>
</select>

为了将来参考,存储数据库中数据的正确方法就是这样。

$stmt = $db->query($sql, array('id' => $_SESSION['id']));
$results = array();
while($record = $stmt->fetch()) {
   $results[]=$record;
}

如果您没有使用其他数据,您可能也希望清理查询而只是SELECT surname FROM。然后你就可以做到这一点。

while($surname = $stmt->fetchCol(0)) {
   //.... and skip the array access altogether

答案 1 :(得分:0)

你应该这样做:

$select = '<select multiple="true" id="category" name="category">';
while($record = $stmt->fetch()) {
    $surname = $record['surname'];
    $select .= '<option value="'.$surname.'">'.$surname.'</option>';
}
$select .= '</select>';

echo $select;

答案 2 :(得分:0)

$sql = "SELECT i.*, m.* FROM addclique i JOIN members m ON m.id = i.clique_id WHERE adder_id = :id";
$stmt = $db->query($sql, array('id' => $_SESSION['id'])); ?>
//SELECT IS OUTSITE 
<select multiple="true" name="category"  val id="category" name="category" class=""> <?php
while($record = $stmt->fetch()) {
   $surname=$record['surname'];
//OPTIONS ARE ADDED IN THE WHILE LOOP 
  ?>
      <option value="<?php echo $surname; ?>"><?php echo $surname; ?></option> <?php
} ?>
</select> // END SELECTION