Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在PHP中创建HTML下拉数组_Javascript_Php_Html - Fatal编程技术网

Javascript 在PHP中创建HTML下拉数组

Javascript 在PHP中创建HTML下拉数组,javascript,php,html,Javascript,Php,Html,我正在尝试创建一个包含txt文件中所有名称的html下拉列表。我对一个PHP文件进行AJAX调用,该文件读取文本文件中的每一行。当我创建如下字符串时,它工作正常: <?php ... $repDropdown = ''; while(!feof($file)) { $rep = fgets($file); $repDropdown .= '<option value="' . $rep . '">' . $rep . '</option>'; } .

我正在尝试创建一个包含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)
?>

或者您可以使用

$array=“1”、“2”、“3”

foreach($array->item as$reps){
回声'
“.$reps.”;

}在while循环中,您需要使用trim($rep)来摆脱换行符。在将其插入数组之前,还需要使用htmlentities($repDropdown)。然后要从数组中检索它,必须使用html\u entity\u 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]);
?>

文档:



我打赌您没有修改JavaScript代码。Show us JS function。您在echo json_encode($reps)
$reps[0]=$repDropdown上留下了一个分号
应该是
$reps[]=$repDropdown因为它是永远替换数组的第一项
<?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]);
?>