我有一个选择框,我想添加到我的.prepend()中的字符串。我不能硬编码选择框和它的选项,因为他们的变化。为了克服这个问题,我使用ajax调用在php脚本中组装选择框及其选项值,然后将其发送回来,然后尝试使用此返回变量作为需要连接到前置内硬编码HTML的HTML。嗨!这证明是困难的,可能是一个简单的语法错误,但我似乎找不到解决方案。
我试过在测试版本上使用PHP的htmlspecialchars。当这回来,我试图使用到concat,它不工作,但如果我只是硬编码同样的事情。
我想我需要的是一个代码块,它在PHP端生成while循环,以转换为可读的HTML,我可以在.prepend()中连接到硬编码的HTML。不会让人困惑,对吧?
在这里添加
$(combidID).prepend('ajax return variable');
PHP选择需要返回并在变量中捕获的框程序集。
echo "<select class='typenew' style='margin-top:13px;'><option id='$selID'>$sel</option>";
$ports_s = "SELECT * FROM FF_Account_Types ORDER BY account_type";
$ports_q = mysql_query($ports_s);
while($ports_f = mysql_fetch_array($ports_q)){
echo "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>";
} echo "</select>";
任何帮助都太好了。谢谢你
实际上问题出在你的echo语句上。在处理ajax请求时,必须尝试只回送一次数据。因此,要解决您的问题,请尝试使用while循环从数据创建字符串循环结束后,按原样回显字符串。然后你会得到完整的选择框html
$outputStr = "<select class='typenew' style='margin-top:13px;'><option id='$selID'>$sel</option>";
$ports_s = "SELECT * FROM FF_Account_Types ORDER BY account_type";
$ports_q = mysql_query($ports_s);
while($ports_f = mysql_fetch_array($ports_q)){
$outputStr .= "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>";
} $outputStr .= "</select>";
echo $outputStr
我希望这将工作
我相信这是一个PHP变量:
echo "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>";
您需要将它们封闭在{}
中。所以请这样写:
echo "<option value='{$ports_f[account_type_id]}'>{$ports_f[account_type]}</option>";
注1:请避免使用
mysql_*
函数,因为该库已被弃用。请使用mysqli_*
或PDO
。注意2:请确保您只输出PHP代码或数据,而不输出任何HTML,以保持表示和逻辑之间的分离。