Измените Span на Input и обновите мою базу данных

0

Я в настоящее время использую этот код фрагмента, который я схватил из некоторого сообщения stackoverflow,

Он преобразует элемент span для ввода, поэтому я могу редактировать и возвращаться к диапазону после

как я могу сделать так, чтобы, когда входные данные преобразуются обратно в диапазон, он обновляет свое значение в базе данных mysql?

/**
  We're defining the event on the 'body' element, 
  because we know the 'body' is not going away.
  Second argument makes sure the callback only fires when 
  the 'click' event happens only on elements marked as 'data-editable'
*/
$('body').on('click', '[data-editable]', function() {

  var $el = $(this);

  var $input = $('<input/>').val($el.text());
  $el.replaceWith($input);

  var save = function() {
    var $p = $('<span data-editable />').text($input.val());
    $input.replaceWith($p);
  };

  /**
    We're defining the callback with 'one', because we know that
    the element will be gone just after that, and we don't want 
    any callbacks leftovers take memory. 
    Next time 'p' turns into 'input' this single callback 
    will be applied again.
  */
  $input.one('blur', save).focus();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Click on <span data-editable> EDIT</span>
  • 0
    Вам нужен пост-вызов ajax, чтобы написать в БД
  • 0
    Неясно, какая часть этого вызывает у вас проблемы. И если ваш ответ «все», то ваш вопрос слишком широк. Вам потребуется ajax-запрос, PHP-код для обработки запроса и установления соединения с вашей БД, а также SQL-запрос для вставки или обновления значения в БД.
Показать ещё 1 комментарий

1 ответ

-1

Вы должны обращаться с ним в функции save

/**
  We're defining the event on the 'body' element, 
  because we know the 'body' is not going away.
  Second argument makes sure the callback only fires when 
  the 'click' event happens only on elements marked as 'data-editable'
*/
$('body').on('click', '[data-editable]', function() {

  var $el = $(this);

  var $input = $('<input/>').val($el.text());
  $el.replaceWith($input);

  var save = function() {
    var $p = $('<span data-editable />').text($input.val());
    $input.replaceWith($p);
    // AJAX call to your backend to save $input.val()
  };

  /**
    We're defining the callback with 'one', because we know that
    the element will be gone just after that, and we don't want 
    any callbacks leftovers take memory. 
    Next time 'p' turns into 'input' this single callback 
    will be applied again.
  */
  $input.one('blur', save).focus();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Click on <span data-editable> EDIT</span>

Ещё вопросы

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