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

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 для другой кнопки.
Спасибо!!!!!!!!
Викторович

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 срабатывать второй раз.
Прошу помощи.
bykovdima

Re: PHP MySQL

Ср авг 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"
Vitaha

Re: PHP MySQL

Ср авг 21, 2019 21:21:00

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

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>

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

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 під час запросу.
Поки що все.

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

Re: PHP MySQL

Чт ноя 25, 2021 20:14:10

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

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

Если что, гугли "home-assistant", "mqtt", "zigbee", "tuya", "mi home", "aqara", "mijia". И в Алиэкспрессе тоже.
Подозреваю, сильно удивишься )
Write comments