Отправляются данные за вторым разом
Здравствуйте уважаемые, простой скрипт отправки полей формы по непонятным причинам отправляет данные обработчику (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 Помогите пожалуйста в решении этой проблемы, спасибо |
Цитата:
А что у вас такое $_POST["part"] и где оно в форме? И уже говорилось - проблемы связанные с серверным кодом размещать в соответствующем разделе. |
Цитата:
'textarea_name' => 'part', //нужно указывать! ето имя поля textarea функции wordpress 'wp_editor', она выводит не просто поле textarea, а полноценный визуальный и HTML редактор WP (TinyMCE) |
Цитата:
В этом случае вы можете рассчитывать на ответ, иначе никто гадать не станет. |
Часовой пояс GMT +3, время: 06:28. |