Я играю с тяжелой социальной сетью PHP для моих друзей. Я пытаюсь добавить функцию редактирования сообщения через Bootbox. Вот код для кнопки РЕДАКТИРОВАТЬ:
<button class='edit_button' id='edit$id'>Edit</button>
И функция, которую он вызывает:
$(document).ready(function() {
$('#edit<?php echo $id; ?>').on('click', function() {
bootbox.prompt({
title: "Edit your post!",
inputType: 'textarea',
backdrop: 'true',
onEscape: 'true',
callback: function (result) {
console.log(result);
}
});
});
});
Я пытался положить value: '<?php echo $body; ?>',
в код загрузочной коробки, но это нарушает остальную часть моего кода JavaScript.
$ Id в кнопке вызывает конкретный $ id поста, который будет ссылаться на $ body поста.
Как мне автоматически вставить текст $ body в текстовое поле?
Я искал в документах bootbox.js и я нашел эту функцию инициализации.
Основываясь на вашем коде, вы можете сделать что-то вроде этого:
$('#edit<?php echo $id; ?>').on('click', function() {
var prompt = bootbox.prompt({
title: "Edit your post!",
inputType: 'textarea',
backdrop: 'true',
onEscape: 'true',
callback: function (result) {
console.log(result);
}
});
prompt.init(function() {
$.ajax({
url: '/path/to/file',
type: 'default GET (Other values: POST)',
dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
data: {postID: '<?php echo $id; ?>'},
beforeSend: function() {
console.log('pre loader');
}
})
.done(function(data) {
prompt.find('.bootbox-input-textarea').val('done');
})
.fail(function() {
prompt.find('.bootbox-input-textarea').val('error');
})
.always(function(data) {
console.log("complete");
});
});
});
Используйте функцию init, чтобы выполнить ajax-вызов и загрузить содержимое публикации внутри текстовой области, созданной bootbox.js, после загрузки вы можете получить значение, отредактированное bootbox.js функция обратного вызова.
Других решений пока нет …