Функции JQuery загружаются преждевременно

0

Какова моя цель, когда нажата кнопка, она заменяет содержимое div текстовым полем и кнопкой. И когда кнопка нажата, она отправляет текст сценарию, который обрабатывает запрос и сохраняет введенные данные из текстового поля в базу данных.

Затем он настроен на вызов другой функции Reset(); который должен восстановить старое содержимое div. Однако идея о том, что я имел в виду, вызывает запрос DB, чтобы найти, что НАСТОЯТЕЛЬНО в базе данных. Но, не делая этого, он просто получает старую ценность. Это заставляет меня думать, что функция работает в начале страницы, а не когда она вызывается.

Он определенно обновляет значение, потому что когда я обновляю значение, оно обновляется. Вот мой код:

<script>

   $(function () {
       $('#button').on('click', function(e) {
           var myVar = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
           $('#WCTarget').html("<div class='span12'><h2>Revision Notes</h2><form id='revisionnotes' name='revisionnotes' method='POST'><textarea style='width:100%;height:290px; padding:10px;' id='notes' name='notes'>" + myVar + "</textarea><br/><button onclick='Button();' name='submit' id='submit' class='btn btn-primary'>Change Revision</button></div></form></div>");
       });
   });

   function Reset() {
       var myVar2 = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
       $('#WCTarget').html("<h2>What new?</h2><div class='well'>" + myVar2 + "</div><input type='button' value='Change Revision' id='button' name='button' class='btn btn-primary'>");
     });

   function Button() {
    $('#revisionnotes').on('submit', function(e) {
        var data = $(this).serialize();
        $.ajax({
            type: 'post',
            url: 'submits/updatenotes.php',
            data: data, // $('form').serialize(),
            success: function (data, textStatus, jqXHR) {
                Reset();
                alert("Delta - POST submission succeeded");
            }
        });
        e.preventDefault();
    });
}   
</script>

Есть ли способ остановить функцию от извлечения значения из базы данных до ее вызова из функции Успех Button?

Большое спасибо, Джаррод.

  • 0
    Ваша функция Reset() использует переменную myVar2 которая устанавливается при первой подаче страницы. Вам нужно использовать значение из параметра data вашей успешной функции $.ajax() , и ваша страница updatenotes.php должна вернуть новое значение.
  • 0
    Спасибо за помощь! Brilliant.

1 ответ

1
$(function () {
       $('#button').on('click', function(e) {
           var myVar = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
           $('#WCTarget').html("<div class='span12'><h2>Revision Notes</h2><form id='revisionnotes' name='revisionnotes' method='POST'><textarea style='width:100%;height:290px; padding:10px;' id='notes' name='notes'>" + myVar + "</textarea><br/><button onclick='Button();' name='submit' id='submit' class='btn btn-primary'>Change Revision</button></div></form></div>");
       });
   });

это не "точно" функция, это закрытие вокруг фрагмента кода, который запускается только один раз, при загрузке страницы.

Если вы хотите загрузить меняющееся значение с вашего сервера, вам нужно будет использовать AJAX, так же, как и использовать для отправки данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню