下拉列表在<select> </select>中为空

时间:2013-10-24 08:16:51

标签: php html mysql

我似乎无法找到我的错误,我的下拉列表是空的,但是当我执行print_r($ data)时,数组中有值。 我的代码:

  <?php $sql = "SELECT p.firstname, p.lastname from person p where p.personid >= :personid";
  $array = array('personid' => 75101);
  $sth = $dbh->prepare($sql);
  if($sth->execute($array)) {
$data = $sth->fetchAll();
  } ?>
  <tr><td style="width:120px;">Contact Person</td>
  <td>
  <select>
<?php foreach ($data as $key => $value) { ?>
          <option value=" <?php $key; ?>" > <?php $value ?> </option>
    <?php } ?>
  </select>
  </td>

有人可以帮忙吗? 感谢

4 个答案:

答案 0 :(得分:0)

试试这个

<?php foreach ($data as $key => $value) { ?>
      <option value=" <?php echo $key; ?>" > <?php echo $value; ?> </option>
<?php } ?>

答案 1 :(得分:0)

您无法使用echo打印变量,忘记打印$key$value

变化

<option value=" <?php $key; ?>" > <?php $value ?> </option>

<option value=" <?php echo $key; ?>" > <?php echo $value; ?> </option>

答案 2 :(得分:0)

试试这个......

<?php $sql = "SELECT p.firstname, p.lastname from person p where p.personid >= :personid";
  $array = array('personid' => 75101);
  $sth = $dbh->prepare($sql);
  if($sth->execute($array)) {
$data = $sth->fetchAll();
  } ?>
  <tr><td style="width:120px;">Contact Person</td>
  <td>
  <select>
<?php foreach ($data as $key => $value) { ?>
          <option value=" <?php echo $key; ?>" > <?php echo $value; ?> </option>
    <?php } ?>
  </select>
  </td>

答案 3 :(得分:0)

您不是打印变量。仅在您的代码中使用。 如果您需要短标签,请尝试以下代码:

<?php foreach ($data as $key => $value) { ?>
      <option value="<?=$key;?>"><?=$value["firstname"]." ".$value["lastname"];?></option>
<?php } ?>

但是,如果您的服务器上的短标记已停用,请尝试以前重播的代码,只有$value个变量会替换为$value["firstname"]