PHP jQuery AJAX .... перезагрузите раскрывающийся список после отправки данных в БД - PullRequest
0 голосов
/ 29 августа 2011

Я новичок в 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"; 
} 
?>

* РЕДАКТИРОВАТЬ: первоначальный выпадающий показывает ожидаемые результаты. Это один из успехов поста, что раскрывающийся список не показывает результатов. Я считаю, что это проблема того, как я пытаюсь обновить выпадающий список. Я считаю, что должен быть намного лучший путь. *

1 Ответ

1 голос
/ 29 августа 2011

В вашем обратном вызове попробуйте посмотреть, что на самом деле возвращается вызовом AJAX.Добавьте console.log (список), чтобы убедиться, что что-то возвращено (это будет отображаться в консоли инструментов разработчика / firebug).

Функция .load () является обработчиком событий, она действует при загрузке вызываемого элемента (#scheduleSelect), не заполняет его какой-либо информацией.

Вы хотите сделатьеще один вызов $ .post, чтобы получить данные из scheduleSelect.php и заполнить раскрывающийся список переменной callback.(попробуйте сделать console.log (переменная) со вторым постом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...