2013-12-15 4 views
0

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

Затем устанавливается вызов другой функции, называемой 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's 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?

Большое спасибо, Jarrod.

+0

Функция 'Reset()' использует переменную 'myVar2', которая задается при первой странице. Вам нужно использовать значение из параметра 'data' вашей функции $ .ajax()' success, а ваша страница 'updatenotes.php' должна вернуть новое значение. – nnnnnn

+0

Спасибо за помощь! Brilliant. – Jarrod

ответ

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>"); 
     }); 
    }); 

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

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

Смежные вопросы