在PHP中创建HTML下拉列表

时间:2013-11-01 23:26:16

标签: javascript php html

我正在尝试使用txt文件中的所有名称创建一个html下拉列表。我对一个PHP文件进行AJAX调用,该文件读取文本文件中的每一行。当我创建这样的字符串时,它工作正常:

<?php
...
$repDropdown = '';
while(!feof($file))
  {
  $rep = fgets($file);
  $repDropdown .= '<option value="' . $rep . '">' . $rep . '</option>';
  }
...
echo $repDropdown;
?>

然而,当我创建一个数组(由于各种原因我需要做)时,它失败了,我相信因为它使用HTML字符。我不知道如何解决这个问题。

<?php
$reps = array();
$repDropdown = '<option value=""></option>'; //array();
while(!feof($file))
  {
  $rep = fgets($file);
  $repDropdown .= '<option value="' . $rep . '">' . $rep . '</option>';
  }
  $reps[0] = $repDropdown;
  echo json_encode($reps)
?>

2 个答案:

答案 0 :(得分:0)

或者你可以使用

$ array =“1”,“2”,“3”;

foreach($array->item as $reps){
echo '
<option value="' . $reps . '">' . $reps . '</option>';

}

答案 1 :(得分:0)

在你的while循环中,你需要使用trim($ rep)来摆脱换行符。在将数据插入数组之前,您还需要使用htmlentities($ repDropdown)。然后要从数组中检索它,你必须用html_entity_decode($ reps [0])来反转htmlentities()。

试试这段代码:

<?php
$reps = array();
$repDropdown = '<select>';

$fp = fopen("test.txt", "r");
while ( $current_line = fgets($fp) ) {
  // do stuff to the current line here
  $current_line = trim($current_line);
  $repDropdown .= '<option value="' . $current_line . '">' . $current_line . '</option>';
}
$repDropdown .= '</select>';
fclose($fp);

$repDropdown = htmlentities($repDropdown);
$reps[] = $repDropdown;
echo json_encode($reps) . '<br />';
echo html_entity_decode($reps[0]);
?>

<强>文档
http://php.net/manual/en/function.trim.php
http://php.net/manual/en/function.htmlentities.php
http://us3.php.net/html_entity_decode