Страница 1 из 1
Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 00:17
nruslan2
Вопрос:
есть два текстовых поля (Поле 1 и Поле 2).
Возможно ли используя поле AJAX (нужно выбирать данные из БД(( ) заставить заполняться одно поле, при заполнении другого.
Типа ввели данные в Поле 1 - в Поле 2 записались данные, и наоборот ввели данные в Поле 2 - в Поле 1 записались данные.
Если использовать JS формы, то проблем нет, но вот если использовать поле AJAX, то никак не могу отследить ввод данных в конкретное поле, получаю постоянное циклическое обновление(

Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 02:41
Fait
nruslan2 писал(а): 12 янв 2024, 00:17
Вопрос:
есть два текстовых поля (Поле 1 и Поле 2).
Возможно ли используя поле AJAX (нужно выбирать данные из БД(( ) заставить заполняться одно поле, при заполнении другого.
Типа ввели данные в Поле 1 - в Поле 2 записались данные, и наоборот ввели данные в Поле 2 - в Поле 1 записались данные.
Если использовать JS формы, то проблем нет, но вот если использовать поле AJAX, то никак не могу отследить ввод данных в конкретное поле, получаю постоянное циклическое обновление(
Интересная задачка

Хочу попробовать решить.
Как я понимаю, при вводе чего-то в одно поле, в другое должны записаться какие-то данные.
Так вот, вопросы:
1) В полях информация одинаковая или разная? Типа, если в одном поле написал "привет", то в другом тоже должно быть "привет"? Или ещё проводится анализ данных из одного поля, чтобы в другое поле записалось что-то другое? Например, в одно поле пишешь "demotext", а в другом поле формируется URL типа "
https://demo.ru/demotext".
2) Что должно происходить в поле 1, если ввёл что-то в поле 2, и при этом в поле 1 уже есть какие-то данные. Они заменяются или сохраняются как были?
3) Что должно происходить с полями при редактировании, а не создании новой записи? Какое из полей должно меняться и зависеть от другого? Или правила не должны работать в случае, если запись редактируется?
4) Для какой задачи это применяется? Может, не обязательно именно в форме делать, и достаточно будет PHP кода при сохранении?
Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 10:19
nruslan2
Fait писал(а): 12 янв 2024, 02:41
Как я понимаю, при вводе чего-то в одно поле, в другое должны записаться какие-то данные.
Верно
Fait писал(а): 12 янв 2024, 02:41
1) В полях информация одинаковая или разная? Типа, если в одном поле написал "привет", то в другом тоже должно быть "привет"? Или ещё проводится анализ данных из одного поля, чтобы в другое поле записалось что-то другое? Например, в одно поле пишешь "demotext", а в другом поле формируется URL типа "
https://demo.ru/demotext".
да без разницы. В моем случаи это число в одном в другом дата)
Fait писал(а): 12 янв 2024, 02:41
2) Что должно происходить в поле 1, если ввёл что-то в поле 2, и при этом в поле 1 уже есть какие-то данные. Они заменяются или сохраняются как были?
данные в поле 1 должны изменится, в этом вся и загвоздка что первичный ввод то отловить можно, но вот если пользователь ввел данные в поле 1, поле 2 посчиталось, пользователю не понравилось поле 2, он его изменил и поле 1 должно пересчитаться, ну или повторно он ввел в поле 1 данные поле 2 должно пересчитать!
Fait писал(а): 12 янв 2024, 02:41
3) Что должно происходить с полями при редактировании, а не создании новой записи? Какое из полей должно меняться и зависеть от другого? Или правила не должны работать в случае, если запись редактируется?
Различие между редактирование м и создания новой записи не должно быть! Смысл?!)
Fait писал(а): 12 янв 2024, 02:41
4) Для какой задачи это применяется? Может, не обязательно именно в форме делать, и достаточно будет PHP кода при сохранении?
Вся идея в том чтобы сразу в форме все видеть и вводить)) через php это на раз два решается)
Повторюсь на всякий случай идея использовать поле AJAX, так как надо это все на форме ввода видеть, через JS это решается, но у JS нет доступа к БД, а надо еще обрабатывать данные с БД)))
Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 11:36
nruslan2
Тему можно закрыть)
Тупанул, в AJAX же можно прописать скрипт не заполнение поля, а скрипт функции))), т.е.:
Не вот так
А вот так
Код: Выделить всё
$('#fields_235').on('input', function() {
$('#fields_236').val(a)
})

Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 11:52
Fait
nruslan2 писал(а): 12 янв 2024, 11:36
Тему можно закрыть)
Тупанул, в AJAX же можно прописать скрипт не заполнение поля, а скрипт функции))), т.е.:
Не вот так
А вот так
Код: Выделить всё
$('#fields_235').on('input', function() {
$('#fields_236').val(a)
})
Да, я в этом же направлении и думал как раз.
Рад, что смог разобраться

Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 14:40
nruslan2
эх рано радовался, если усложнить систему и расчеты все делать в php, а через js запускать вставку данных, то не работает - надо каким-то условиями обложится но в голову чет не лезет ничего:(
Код: Выделить всё
$a=[235];
$b=[236];
$p1=$a+1;
$p2=$b+1;
echo "<script>
$('#fields_236').on('input', function() {
a=".$p1.";
$('#fields_235').val(a)
})
$('#fields_235').on('input', function() {
b=".$p2.";
$('#fields_236').val(b)
})
</script>";
https://pdemo.rukovoditel.pro/3.4/index ... mo_id=2843
Сущность Test.
Идея в том чтобы вводя данные в поле Z1, в поле Z2 записывались данные, но если мы введем данные в поле Z2 данные должны обновится в Z1.
Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 15:01
alexinc
Сдается мне, вам нужно делать функцию по таймеру в форме на JS(Настройка формы - Добавить JavaScript), которая отслеживает начало ввода в поле и переносит потом данные. Учитывая, что данные не могут единовременно вводиться в оба поля одним пользователям, просто пробегать сверху вниз или снизу вверх на проверку и потом заносить.
Таймаут на проверку подобрать экспериментально. Но обычно 1-2 (1000-2000) секунд хватает.
Re: Ввод данных в одно из двух полей
Добавлено: 12 янв 2024, 21:35
nruslan2
alexinc писал(а): 12 янв 2024, 15:01
Сдается мне, вам нужно делать функцию по таймеру в форме на JS(Настройка формы - Добавить JavaScript), которая отслеживает начало ввода в поле и переносит потом данные. Учитывая, что данные не могут единовременно вводиться в оба поля одним пользователям, просто пробегать сверху вниз или снизу вверх на проверку и потом заносить.
Таймаут на проверку подобрать экспериментально. Но обычно 1-2 (1000-2000) секунд хватает.
не совсем понял что такое сверху вниз и причем тут таймаут)
Re: Ввод данных в одно из двух полей
Добавлено: 15 янв 2024, 16:56
alexinc
nruslan2 писал(а): 12 янв 2024, 21:35
alexinc писал(а): 12 янв 2024, 15:01
Сдается мне, вам нужно делать функцию по таймеру в форме на JS(Настройка формы - Добавить JavaScript), которая отслеживает начало ввода в поле и переносит потом данные. Учитывая, что данные не могут единовременно вводиться в оба поля одним пользователям, просто пробегать сверху вниз или снизу вверх на проверку и потом заносить.
Таймаут на проверку подобрать экспериментально. Но обычно 1-2 (1000-2000) секунд хватает.
не совсем понял что такое сверху вниз и причем тут таймаут)
Я имел ввиду использовать в форме функцию setInterval для проверки изменения в полях. Какое поле измениться - из того и копировать.