.prepend()中的Ajax返回变量



我有一个选择框,我想添加到我的.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,以保持表示和逻辑之间的分离。

最新更新