Курс 1Qгрошi=0.1грн. Джекпот: 24,00. Куплено билетов: 0. Следующий розыгрыш: Вс апр 28, 2024 17:20:36. Перейти к лотерее

PHP MySQL

Не много обо всем. От рыбалки до вышивания крестиком.

Модераторы: healix, BMB, Модераторы форума

Аватар пользователя
Qashqai - многознайка
 
Сообщений: 2040
Зарегистрирован:
Чт июн 07, 2007 12:14:39
Откуда: Киев
Cash on hand: 92.95
Благодарил (а): 7 раз.
Поблагодарили: 67 раз.
Пункты репутации: 11

Re: PHP MySQL

Сообщение Викторович » Пт июл 19, 2019 15:58:00

Вот так работает:
<script>
$(document).ready(function(){
$('.btnn').click(function() {
var btnIdNum = $(this).attr('id').substr(3);
if ($('#div'+btnIdNum).css('max-height') == '180px') {
$('#div'+btnIdNum).css('max-height', '100%');
$(this).toggleClass('one').toggleClass('two');
} else {
$('#div'+btnIdNum).css('max-height', '180px');
$(this).toggleClass('one').toggleClass('two');
}
}); });
</script>

Класс кнопки поменял так как уже был класс btn для другой кнопки.
Спасибо!!!!!!!!

Аватар пользователя
Qashqai - многознайка
 
Сообщений: 2040
Зарегистрирован:
Чт июн 07, 2007 12:14:39
Откуда: Киев
Cash on hand: 92.95
Благодарил (а): 7 раз.
Поблагодарили: 67 раз.
Пункты репутации: 11

Re: PHP MySQL

Сообщение Викторович » Ср авг 21, 2019 10:37:02

Коллеги, есть новый вопрос.
Смысл такой.
С странички index.php через jquery вывожу div модальное окно.
В модальном окне у меня выводится alert.php.
alert.php выводит из базы данных напоминания отсортированные по дате.
Далее в модальном окне можно изменить дату напоминания, и нажав кнопку, фрма через POST посылает дынные в index.php, где через зрз код они успешно сохраняются (меняются) в базе данных.
Все вроде бы хорошо, НО.
В форме я использую вот такой скрипт:
<script>
$("#<? print $rw->id ?>").submit(function(e){ // submit для формы с нужным ID
e.preventDefault(); // останавливаем submit что бы модальное окно не закрывалось
$.ajax({ // продолжаем submit через ajax
url: 'alerts.php',
type : 'POST',
data: $('form#<? print $rw->id ?>').serialize(),
cache:false,
beforeSend: function( xhr ) {
xhr.overrideMimeType( "text/plain; charset=windows-1251");
},
success: function(response){
$('.popup').html(response); // перегружаем модальное окно!!!!!!!!!!
$('.datepicker-here').datepicker();
$('.select_users_change').select2({width: "180px",minimumResultsForSearch: Infinity,language: {noResults: function (params){return "Не найдено совпадений";}}});
},
error: function(){
alert("Error");
}
});
return false;
});
</script>

И вот собственно в чем проблема.
Если я обновляю форму, то второй раз submit не работает!!!!
Если я уберу обновление формы и оставлю вот так:

<script>
$("#<? print $rw->id ?>").submit(function(e){ // submit для формы с нужным ID
e.preventDefault(); // останавливаем submit что бы модальное окно не закрывалось
$.ajax({ // продолжаем submit через ajax
url: 'alerts.php',
type : 'POST',
data: $('form#<? print $rw->id ?>').serialize(),
cache:false,
beforeSend: function( xhr ) {
xhr.overrideMimeType( "text/plain; charset=windows-1251");
},
success: function(response){
},
error: function(){
alert("Error");
}
});
return false;
});
</script>

То естественно обновление формы не происходит, но submit работает каждый раз сколько бы его не передавать.
Перерыл гугл. Ни чего не нашел.
Методом тыка для себя понял что перезагрузка модального окна (именно только модального окна) путем перезаполнения HTML в этом окне, не дает submit срабатывать второй раз.
Прошу помощи.

Аватар пользователя
Лучший форумчанин Июля
 
Сообщений: 9906
Images: 138
Зарегистрирован:
Ср май 28, 2008 14:02:03
Откуда: Николаев
Медали: 1
Форумчанин месяца (1)
Cash on hand: 961.32
Благодарил (а): 320 раз.
Поблагодарили: 701 раз.
Авто: Nissan Qashqai, 2.0, CVT, 4wd, Tekna
Пункты репутации: 131

Re: PHP MySQL

Сообщение bykovdima » Ср авг 21, 2019 20:39:17

Викторович
смотри что у тебя происходит:
после того как загружается страница, в DOM к форме с определенным #ID привязывается обработчик onSubmit - функция, которая у тебя все делает. в этой функции ты отправляешь аякс, и получаешь ответ, который выводишь на страницу, тем самым замещаешь предыдущую форму на новую. в DOMе это уже новый элемент, а поскольку это новый элемент, то и обработчика onSubmit у него уже нет, ну точнее он есть, но не тот, который ты привязал форме, которая была после загрузки страницы.

чтобы сделать как ты хочешь с минимальными переделками:
выносишь всю логику в именованную функцию
Код: выделить все
function test(e) { ... }

$("#<? print $rw->id ?>").submit(test(e));

внутри функции, после
Код: выделить все
$('.popup').html(response); // перегружаем модальное окно!!!!!!!!!!

нужно еще раз выполнить привязку в новому DOM элементу к этой функции, т.е.
Код: выделить все
$("#<? print $rw->id ?>").submit(test(e));


з.ы. возможно что-то напутал с передачей параметра "e"

Qashqai читатель
 
Сообщений: 24
Зарегистрирован:
Вс ноя 15, 2015 23:30:59
Cash on hand: 11.41
Благодарил (а): 17 раз.
Поблагодарили: 20 раз.
Авто: X-Trail 2.5
Пункты репутации: 0

Re: PHP MySQL

Сообщение Vitaha » Ср авг 21, 2019 21:21:00

Обалдеть у вас темы интересные... Я в шоке) Никогда не видел такого автомобильного форума. =D>

Аватар пользователя
Qashqai - многознайка
 
Сообщений: 2040
Зарегистрирован:
Чт июн 07, 2007 12:14:39
Откуда: Киев
Cash on hand: 92.95
Благодарил (а): 7 раз.
Поблагодарили: 67 раз.
Пункты репутации: 11

Re: PHP MySQL

Сообщение Викторович » Вт авг 27, 2019 12:57:41

bykovdima
К сожалению ни чего не получается.
Опишу что я хочу, может подскажешь как это реализовать вообще по другому.
Итак первая страница которая загружается после логина это index.php.
На этой странице я через вот такой скрипт я открываю модальное окно:
<div id="overlay" >
<div class="popup">
<?php require('alerts.php'); ?>
</div>
</div>
<script type="text/javascript">
$(function() {
if (!$.cookie('hideModal')) {
var delay_popup = 500;
setTimeout("document.getElementById('overlay').style.display='block'", delay_popup);
}
});
</script>

alerts.php это и есть содержимое модального окна.
Далее я хочу в модальном окне делать некие изменения с записью в базу данных.
Но при этом я хочу что бы модальное окно не закрывалось при сабмите, но перегружалось. И закрывалось уже по нажатию кнопки закрыть.
Это то что хочу.
Сейчас как и писал выше работает почти все кроме того, что после первого сабмита модальное дальше сабмит не воспринимается.
Кроме того в рнр модального окна есть еще один сабмит который который устанавливает куку.
<form name="frm" method="post" action="">
<td colspan="3"style="padding-left:50px; padding-top:20px;"><b>Отложить на:&nbsp;&nbsp;</b>
<select style="padding-right:20px;" class="select_users_change" name="exp">
<option value="<? print time()+(60*5) ?>" >5 минут</option>
<option value="<? print time()+(60*10) ?>" >10 минут</option>
<option value="<? print time()+(60*15) ?>" >15 минут</option>
<option value="<? print time()+(60*30) ?>" >30 минут</option>
<option value="<? print time()+(60*60) ?>" >1 час</option>
<option value="<? print time()+(60*120) ?>" >2 часа</option>
<option value="<? print time()+(60*240) ?>" >4 часа</option>
<option value="<? print time()+(60*480) ?>" >8 часов</option>
<option value="<? print time()+(60*1000) ?>" >1 день</option>
</select>&nbsp;&nbsp;
<button onclick="this.frm.submit()">Отложить</button>
<input type="hidden" name="act" value="setcookie" />
</form>

И если сделать первый сабмит в форме которую описывал ранее, то и этот сабмит перестает работать.
Другими словами в открывшемся модальном окне любой сабмит работает только один раз и все. После чего ни один другой сабмит не работает.

Аватар пользователя
Qashqai - многознайка
 
Сообщений: 2040
Зарегистрирован:
Чт июн 07, 2007 12:14:39
Откуда: Киев
Cash on hand: 92.95
Благодарил (а): 7 раз.
Поблагодарили: 67 раз.
Пункты репутации: 11

Re: PHP MySQL

Сообщение Викторович » Пт ноя 12, 2021 17:19:50

Коллеги.

у меня есть проектик в котором нужно реализовать следующее.
Мне для тестирования устройства и связи его с основным программным обеспечением нужно написать маленькую программку (службу).
Вдруг кому будет интересно или если нет, возможно кто то из Ваших коллег сможет написать такое.

Я уже и на форум программистов написал. Тишина.
Хотя понимаю что сложности нет, для человека владеющего каким то языком программирования.
Вот задача которую я разместил на форуме.

Доброго дня.
Шукаю програміста для написання служби (програми) для Windows.
Основна задача служби наступна:
1. Є такий пристрій - https://vkmodule.com.ua/Ethernet/Ethernet3.html
2. Служба має запускатися автоматично під час запуску системи.
3. Служба має відстежувати зміну входу на пристрої.
4. Як тільки відбулася зміна на вході пристрою, служба має виконати наступне завдання:
а) зробити запрос SELECT а FROM table1 в SQLIte базу даних. В таблиці SQLIte буде завжди одна строка. Але значення буде змінюватися.
б) після отримання змінної "а", надіслати на вказану (фіксовану) IP адресу та на вказаний (фіксований) порт по протоколу TCP IP наступну команду:
devices|lookup|ААА|select|а
де:
devices|lookup| - це тип команди яку розуміє зовнішнє ПО.
ААА - назва пристрою для якого адресована команда. Це буде фіксоване значення.
а - змінна яка була отримана з SQLIte під час запросу.
Поки що все.

Об оплате договоримся.

Аватар пользователя
Qashqai - умище
 
Сообщений: 10721
Images: 549
Зарегистрирован:
Сб фев 09, 2008 11:03:48
Откуда: Киев
Медали: 1
Форумчанин месяца (1)
Cash on hand: 1,115.07
Благодарил (а): 106 раз.
Поблагодарили: 1456 раз.
Авто: Qashqai 1.6 Tekna 2007, Ford Kuga 2017 FWD МТ6 2.0 TDCi 150
Пункты репутации: 138

Re: PHP MySQL

Сообщение healix » Чт ноя 25, 2021 20:14:10

Ностальгия...
Словно вернулся лет на 30 назад, в тёплые ламповые времена, когда ешё никто не видел Матрицу, и никто даже не догадывался, что лампочкой можно будет управлять голосом )

Викторович, если ты такое себе купил, то походу исключительно из любви к совку-постсовку и отсутствием доступа к Гугл-сёрчу )

Если что, гугли "home-assistant", "mqtt", "zigbee", "tuya", "mi home", "aqara", "mijia". И в Алиэкспрессе тоже.
Подозреваю, сильно удивишься )
Изображение
Всё, что я пишу тут, на форуме, всё это моё ИМХО. Без какой-либо претензии на Трансляцию Истины.

Пред.

Вернуться в Qashqai хобби

Кто сейчас на форуме

Зарегистрированные пользователи: Google [Bot]