PHP jQuery AJAX..重新加载一个下拉菜单一旦数据提交到数据库


PHP jQuery AJAX....reload a drop-down once data has been submitted to DB

我是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(变量))