我是PHP的新手,我正在尝试学习如何在添加新类别后重新填充下拉列表。
现在,用户可以创建新类别,并在成功时发回消息。我迷失在如何重新填充成功的下拉菜单上。
以下是一些相关代码:
//Handles the submit to DB
$.post("addHourlyScheduleCB.php", {
schedule: $("#schedule").val()
},
function(list){
$("#message").removeClass().html(list);
//inject the latest drop down info
$("#scheduleSelect").load("scheduleSelect.php");
$("html,body").animate({scrollTop:0},'slow');
$.unblockUI()
}
);
成功后,我尝试注入一个PHP页面,从数据库中提取更新的数据。
这是HTML
<select name="scheduleSelect" id="scheduleSelect">
<?php
while ($row = $db->sql_fetchrow($rateScheduleSQLresult)) {
echo "<option value=".$row['Rate_Schedule_ID'].">$row[schedule]</option>\n";
}
?>
</select>
这是在jQuery的成功函数中调用的页面:
<?php
require_once("models/config.php");
$rateScheduleSQL = "SELECT * FROM rateschedules ORDER BY schedule";
$rateScheduleSQLresult = $db->sql_query($rateScheduleSQL);
while ($row = $db->sql_fetchrow($rateScheduleSQLresult)) {
echo "<option value=".$row['Rate_Schedule_ID'].">$row[schedule]</option>\n";
}
?>
* 编辑:初始下拉列表显示预期结果。该帖子的成功之处在于下拉列表没有显示任何结果。我相信这是我如何尝试更新下拉列表的问题。我相信必须有一个更好的方法。 *
答案 0 :(得分:1)
在回调中,尝试查看AJAX调用实际返回的内容。添加console.log(列表)以确保返回某些内容(这将显示在您的开发人员工具/ firebug控制台中)。
.load()函数是一个事件处理程序,它在加载被调用元素(#scheduleSelect)时起作用,它不会用任何信息填充它。
您想进行另一个$ .post调用以从scheduleSelect.php获取数据,并使用回调变量填充下拉列表。 (尝试用第二篇文章做一个console.log(变量))