我是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";
}
?>
*EDIT:最初的下拉列表显示了预期的结果。这是一个帖子的成功,下拉菜单没有显示任何结果。我相信这是我如何尝试更新下拉菜单的问题。我相信一定有更好的办法。*
在回调中,尝试查看AJAX调用实际返回的内容。添加console.log(list)以确保返回一些内容(这将显示在开发人员工具/firebug控制台中)。
.load()函数是一个事件处理程序,它在被调用的元素(#scheduleSelect)被加载时起作用,它不填充任何信息。
你想要另一个$。post调用从scheduleSelect.php获取数据,并用回调变量填充下拉框。(尝试用第二个帖子做console.log(变量))