Javascript 在PHP中创建HTML下拉数组
我正在尝试创建一个包含txt文件中所有名称的html下拉列表。我对一个PHP文件进行AJAX调用,该文件读取文本文件中的每一行。当我创建如下字符串时,它工作正常: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>'; } .
<?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]);
?>