Здравствуйте уважаемые, простой скрипт отправки полей формы по непонятным причинам
отправляет данные обработчику (php-файл)
всегда за вторым разом. Данный скрипт удалось написать с Вашей помощью, за что очень Вам благодарен (
ссылка на предыдущую тему) и он же на другой странице работает идеально. Итак, вот код скрипта:
jQuery(document).ready(function($){
$('#lbkg_form').submit(function(e) {
e.preventDefault();
$.ajax({
type: this.method,
url: this.action,
dataType: "json", // тип передачи данных - это тип ожидаемых данных от сервера
data: $(this).serialize(),
// после получения ответа сервера
success: function(data){
$('.messages').html(data.result); // выводим ответ сервера
}
});
});
});
а вот обработчик (часть php-файла):
/*поле textarea*/
echo '<form action="' . plugins_url('lb-kg/lb-kg.php') . '" method="POST" id="lbkg_form">';
wp_editor($GLOBALS["part"], 'editor_id', array(
'wpautop' => 1,
'media_buttons' => 1,
'textarea_name' => 'part', //нужно указывать!
'textarea_rows' => 20,
'tabindex' => null,
'editor_css' => '',
'editor_class' => '',
'teeny' => 0,
'dfw' => 0,
'tinymce' => 1,
'quicktags' => 1,
'drag_drop_upload' => true
) );
echo '<input type="hidden" name="hlbkgadm" value="1">';
submit_button( 'Сохранить контент' );
echo '</form>';
echo '<div class="messages"></div>';
/*сам обработчик*/
if (($_SERVER['REQUEST_METHOD'] === 'POST') && !empty($_POST["hlbkgadm"])) {
if (!empty($_POST["part"])) {
$f = fopen("part.txt", "w");
fwrite($f, $_POST['part']);
fclose($f);
unset ($_POST["part"]);
$arr = array('result' => '<span style="color: #006400; font-weight: 600;">Изменения успешно сохранены!</span>');
exit(json_encode($arr));
} else {
$f = fopen("part.txt", "w");
fwrite($f, '');
fclose($f);
$arr = array('result' => '<span style="color: #FF0000; font-weight: 600;">Данные отсутствуют!</span>');
exit(json_encode($arr));
}
}
Движок wordpress, использую встроенные функции движка. Смотрел в консоль, при первом нажатии на кнопку "submit_button" данные отправляются, но только те что были до ввода. Объясню на двух примерах:
1. открываю данное текстовое поле для ввода, оно пустое, я ввожу текст, жму отправить, происходит отправка но переменная пустая (так как раньше поле было пустым), в поле введенный текст присутствует, когда жму повторно на кнопку, то отправляется как надо.
2. например ввожу в пустое поле цифру 1, жму кнопку 1 раз, передается пустое значение (до того поле было пустым), дописываю цифру 2 (в поле уже введено 12), жму кнопку еще 1 раз, передается цифра 1, если потом еще раз нажму, то уже передастся 12.
Получается что при первом нажатии текущий текст поля где-то запоминается и за вторым разом нажатия уже отправляется.
Вот еще на тостере нашел подобную проблему
https://toster.ru/q/227618
Помогите пожалуйста в решении этой проблемы, спасибо