PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (59): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 881
Vladimir Kheifets Отправлено: 05 Февраля, 2022 - 06:25:40 • Тема: setTimeOut, как сделать ожидание при вводе текста для проверки • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1779
DlTA пишет:
Vladimir Kheifets пишет:
qw = setTimeout(()=>{console.log(text)/*тут выводится Hello, World! */}, 500);

да, так и работает

Vladimir Kheifets пишет:
а про "this, а точнее $(this) ...лучше создать переменную подобие $this" как-то туманно.

зачем $this
при обработке формы
например:
CODE (html):
скопировать код в буфер обмена
  1. <form class="add">
  2.   <input name="text">
  3.   <button>Отправить</button>
  4. </form>

если форма одна то одинаково как ты к ней стучишся для поправки данных
а у меня поле [name=text] это будет ссылка, когда человек вводит значение я поправляю лишние символы и отправляю данные на сервер для проверки наличие такой ссылки

так вот если я хочу проверять данные, а еще не ложить сервер нагрузкой то как мне в
setTimeout сохранить переменную с тегом <input name="text">
наиболее простой вариант:

CODE (javascript):
скопировать код в буфер обмена
  1. $('.add [name=text]').on('...', function(){
  2.   $this=$(this);
  3.   ...
  4.   setTimeout(()=>{
  5.     $this->val()
  6.   }, 500);
  7. });


иначе когда у тебя несколько форм то ...((

Добрый день!
Можно обойтись и без this и $this=$(this);.
Чтобы было легко проверить написал на native JS.
Если только одна форма, и в ней тэг <input name="text">, то так:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <form class="add">
  4.   <input name="text">
  5.   <button>Отправить</button>
  6. </form>
  7. </body>
  8. <script>
  9. elemetsTextNodelist = document.querySelectorAll(".add input[name='text']");
  10. elemetsTextNodelist[0].addEventListener('keyup', function(e){
  11.         console.log(e.target.value);
  12.         //  ...
  13.         setTimeout(()=>{console.log(e.target.value);}, 500);
  14. });
  15. </script>
  16. </html>
Если несколько форм и в каждой тэг <input name="text">, то так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <form class="add">
  4.   <input name="text">
  5.   <button>Отправить</button>
  6. </form>
  7. <form class="add">
  8.   <input name="text">
  9.   <button>Отправить</button>
  10. </form>
  11. <form class="add">
  12.   <input name="text">
  13.   <button>Отправить</button>
  14. </form>
  15. </body>
  16. <script>
  17. elemetsTextNodelist = document.querySelectorAll(".add input[name='text']");
  18. for(i=0; i<elemetsTextNodelist.length;i++)
  19. {
  20.         elemetsTextNodelist[i].addEventListener('keyup', function(e){
  21.                 console.log(e.target.value);
  22.                 //  ...
  23.                 setTimeout(()=>{console.log(e.target.value);}, 500);
  24.         });
  25. }
  26. </script>
Удачи!
Vladimir Kheifets Отправлено: 04 Февраля, 2022 - 06:40:42 • Тема: setTimeOut, как сделать ожидание при вводе текста для проверки • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1779
DlTA пишет:
нашел ответ
передать параметры в setTimeout как параметр нельзя, но можно параметры сохранить в переменный которые будут учтены в функции в setTimeout
кромер this, для передачи this, а точнее $(this) лучше создать переменную подобие $this, и уже ее узать в коде


Добрый день!
Передать параметры нельзя, а про "this, а точнее $(this) ...лучше создать переменную подобие $this" как-то туманно.
Вы простосто должны определить переменную text, а в setTimeout д.б анонимная функция.
CODE (javascript):
скопировать код в буфер обмена
  1. <html>
  2. <script>
  3. text = "Hello, World!";
  4. qw = setTimeout(()=>{console.log(text)/*тут выводится Hello, World! */}, 500);
  5. </script>
  6. </html>
Удачи!
Vladimir Kheifets Отправлено: 03 Февраля, 2022 - 10:14:26 • Тема: Работа с базой данных PHP • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 881
user81 пишет:
Доброго времени суток. Я сделал это задание. Можете кто подскажет мои недочёты. Заранее спасибо.


Добрый день!
Извите, не было возможности посмотреть всё внимательно.
То на, что обратил внимание:
Не советую Вам в конструкоры каждого класса вставлять соединение с БД.
Тем более, что почти наверняка, для реализации проекта Вам потребуется написать ещё несколько классов.
Вероятно, у Вас одна база данных и желательно соединение в каждом скрипте делать один раз.
Поэтому лучше бы сделать отдельный класс, в котором м.б. определить все, что может потребоваться и сделать соединение с БД.
Удачи!
Vladimir Kheifets Отправлено: 01 Февраля, 2022 - 14:09:43 • Тема: Нужна помощь в создании скрипта для создания графиков дежурств • Форум: Напишите за меня, пожалуйста

Ответов: 33
Просмотров: 3190
Ruskat пишет:
Vladimir Kheifets пишет:

Удачи!

Не могу зацепиться за формирование в базе строк с работниками.
А именно [wrk_1]... ($_POST['wrk_1'])
Параметр идентификатора работника динамичен. Может и до [wrk_4] дойти, а може и 2 иметь.
Как посчитать колличество [wrk_Х] , чтобы потом аналогично и для времени посчитать и для работника получить цикл и всё записать в базу?
Писать думаю в цикле, примерно так:
PHP:
скопировать код в буфер обмена
  1.     $n = count($_POST);
  2.     for($i=1; $i < $n; $i++){
  3.            $vid = $_POST['wrk'.$i];
  4.            $dt_fr= $_POST['dt_from_'.$i];
  5.            $tm_fr= $_POST['tm_from_'.$i];
  6.            $dt_to= $_POST['dt_to_'.$i];
  7.            $tm_to= $_POST['tm_to_'.$i];
  8.     }

Может сформировать как-то иначе, чтобі получилось $_POST['wrk'][0]...[4]

Добрый день!
$n = count($_POST); Выдаст количество эл. массива, а это совсем не то, что Вам нужно.
Если формуляр заполняется последовательно с первой строки, то так можно выбрать все введенное, до первой пустой:
PHP:
скопировать код в буфер обмена
  1. $i=1;
  2.         while(!empty($vid=$_POST["wrk".$i]))
  3.         {
  4.                 $dt_fr= $_POST['dt_from_'.$i];
  5.                 $tm_fr= $_POST['tm_from_'.$i];
  6.                 $dt_to= $_POST['dt_to_'.$i];
  7.                 $tm_to= $_POST['tm_to_'.$i];
  8.                 $i++;
  9.         }


а так можно обработать все строки исключая пустые:
PHP:
скопировать код в буфер обмена
  1. $NumberOfWorkerInBrigade = 4;
  2.         for($i=1; $i<=$NumberOfWorkerInBrigade; $i++)
  3.         {
  4.                 if(!empty($vid=$_POST["wrk".$i]))
  5.                 {
  6.                         $dt_fr= $_POST['dt_from_'.$i];
  7.                         $tm_fr= $_POST['tm_from_'.$i];
  8.                         $dt_to= $_POST['dt_to_'.$i];
  9.                         $tm_to= $_POST['tm_to_'.$i];
  10.                 }
  11.         }
Удачи!
Vladimir Kheifets Отправлено: 31 Января, 2022 - 17:16:20 • Тема: формирование меню для базы • Форум: Вопросы новичков

Ответов: 11
Просмотров: 621
don.bidon пишет:
Vladimir Kheifets пишет:
Куки не очень здорово.
Вебмастеру после внесений изменений в коды необходимо чистить браузер.
Не знаю, как другие, но я делаю так.

1) Разные браузеры для одмина и простого смертного?
2) Приватные вкладки?
Я немножко фигею )


Прочёл, и тоже и не немножко.

Есть нечто на сервере.
Оно использует, куки, если получно на них разрешение, и сессесии.
Этому нечто бразуры посылают реквесты.
Если заходит клиент, то для него может закрыта какая-то часть
контента или вообще всё - сайт на реконструкции.
Вебмастеру показывается всё включая фотальные ошибки в кодах.
После корректировки кодов требуется убрать всё из кэша браузера
и начинать тестирование.
Между прочим, тестирование делается на разных браузерах, с разными движками.
В приватных вкладках сайт не будет работать нормально и ничего тогда не протестируешь.
(Добавление)
DlTA пишет:
это чисто для создания блока части меню? чтоб пустые не выводить?
и IP привязка по практике не везде правильно работает, я и прогер и админ, но проверять будут манагеры, а они уже в других странах сидят

у меня для вывода выводятся в 2 режимах, видно и не видно


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

Про то, как у нас устроено с разными проверками.

Наши системы работают с несколькими вебсервисами, в том числе и с платёжными системами.
Обычно, все вебсервисы поддерживают Live и Test(песочницы) Environments.
Сделано это для того, чтобы не попасть на деньги при тестировании.

Поэтому в наших системах также приходится поддерживать Live, Test - Environments.
Основная разработка и тестирование ведётся в Test-Environment.

Кроме того поддерживается Demo-Environment предназначеная для презентаций/обучения клиентов, которая имеет доступ к Test- Environments вебсервисов.

Возвращая к отключалке в меню. Она применяется только на момент апдейта Live и Demo - Environments.
Поэтому обходимся сохранением в БД одного IP.
Vladimir Kheifets Отправлено: 31 Января, 2022 - 13:54:09 • Тема: формирование меню для базы • Форум: Вопросы новичков

Ответов: 11
Просмотров: 621
don.bidon пишет:
Vladimir Kheifets пишет:
игнорируются для вебмастера(проверяется по IP)

У всех белый IP, так точно )
Уж тогда по сессии (куке).


Перед тем, как что-то тестировать, записываю свой актуальный IP в БД.
Очень белый IP, так точно )

Куки не очень здорово.
Вебмастеру после внесений изменений в коды необходимо чистить браузер.
Не знаю, как другие, но я делаю так.
Vladimir Kheifets Отправлено: 31 Января, 2022 - 11:48:29 • Тема: формирование меню для базы • Форум: Вопросы новичков

Ответов: 11
Просмотров: 621
DlTA пишет:
Vladimir Kheifets пишет:
Так вопрос снят? или?...
так как других ответов нет, то да(

Ну раз других, нет, то довалю одну шестерёнку, которую вставляю во все проекты.
В таблице меню есть столбец "Off" - integer:
0 - позиция меню выводится нормально.
1 - позиция меню выводится, но по клику выдаётся сообщение "Раздел на реконструкции..."
2 - позиция меню не выводится
Флажки 1,2 игнорируются для вебмастера(проверяется по IP)
Может пригодится.
Vladimir Kheifets Отправлено: 30 Января, 2022 - 14:02:41 • Тема: формирование меню для базы • Форум: Вопросы новичков

Ответов: 11
Просмотров: 621
DlTA пишет:
Слепить Я и сам могу, вопрос что?

нынче создаю таблицу ссылок
для меню похоже нужно добавить 2 таблички

место_вывода:id,место_вывода, описание_места;
последовательность:место_вывода_id, сортировка, id_ссылки, описание, изображение

вроде похоже как вариант


Вполне может быть, что "похоже как вариант",
но непонятна задача и что в этих полях таблицы.
Так вопрос снят? или?...
Vladimir Kheifets Отправлено: 29 Января, 2022 - 14:44:15 • Тема: формирование меню для базы • Форум: Вопросы новичков

Ответов: 11
Просмотров: 621
DlTA пишет:
Добрый, прежде на сайте меню формировалось по структуре
для списка подразделов нужно было получить список в разделе и их и выводили
либо ручками создавалось меню в html и выводилось

на новом сайте меню состоит из набора адресов и они не принадлежат одному типу (не в одной таблице получались),
и список ссылок, то-ли это просто меню, а где-то это список красивых ссылок к которым еще нужно прилепить свои изображения, + к названию нужно добавить не только название но еще описание

выводятся НЕ все ссылки
а некоторые ссылки повторяются разными способами (как в меню или как красивая ссылка)

так вот, может есть опробованный пример, лепить свой лесопед не очень хочется


Добрый день!
Кажется придётся "лепить свой лесопед" или собирать из частей других велосипедов.
Если хотите, чтоб кто-то помог напишите что есть, что пробовали и чего не хватает.
Удачи!
Vladimir Kheifets Отправлено: 29 Января, 2022 - 12:06:34 • Тема: Нужна помощь в создании скрипта для создания графиков дежурств • Форум: Напишите за меня, пожалуйста

Ответов: 33
Просмотров: 3190
Ruskat пишет:
Vladimir Kheifets пишет:
...

Уже массив с данными получаю.
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [gr_to_date] => 2022-01-30
  4.     [st_disp] => 2
  5.     [kps] => 5
  6.     [brygada] => 205
  7.     [bazirovanie] => 10
  8.     [wrk_1] => 22
  9.     [dt_from_1] => 2022-01-30
  10.     [tm_from_1] => 08:00
  11.     [dt_to_1] => 2022-01-31
  12.     [tm_to_1] => 08:00
  13.     [wrk_2] => 3
  14.     [dt_from_2] => 2022-01-30
  15.     [tm_from_2] => 08:00
  16.     [dt_to_2] => 2022-01-31
  17.     [tm_to_2] => 08:00
  18.     [wrk_3] => 9
  19.     [dt_from_3] => 2022-01-30
  20.     [tm_from_3] => 08:00
  21.     [dt_to_3] => 2022-01-31
  22.     [tm_to_3] => 08:00
  23.     [wrk_4] => 110
  24.     [dt_from_4] => 2022-01-30
  25.     [tm_from_4] => 08:00
  26.     [dt_to_4] => 2022-01-31
  27.     [tm_to_4] => 08:00
  28. )
  29.  

Как теперь эти данные правильно в базу писать? Так как параметры [st_disp] => 2, [kps] => 5, [bazirovanie] => 10 только одни на определенную дату/дежурство. Внесены лишь раз и могут не меняться, если не нужно корректировать.
А вот [brygada] => 205, [bazirovanie] => 10, [wrk_1] => 22 ... Их будет несколько: [brygada] => 206, [brygada] => 216... Могут быть с разным составом, редактироваться или удаляться.
Должность я выведу исходя из ID должности, которая указана в профиле работника. Главное, что имеется ID работника.
Вот набросал условное представление [img]https://i.yapx.ru/QUWyM.png[/img], что мне нужно видеть на выходе для просмотра графика онлайн.
Как это правильно писать в базу и выводить с привязкой к определённой дате?
Подскажите, пожалуйста.


Добрый день!

Поскольку у Вас в бригаде у работников время работы разное и по нему могут потребоваться выборки, не стоит упаковывать данные в один стобец типа json.
Попробуйте сделать две таблицы
Спойлер (Отобразить)
т.к. дата в таблице `brigada` создает с датой from `workers_brigada`
а дата то совпадает датой from или +1day, то можно записывать только время.
Конечно это усложнит выборку данных.

Удачи!
Vladimir Kheifets Отправлено: 26 Января, 2022 - 07:05:33 • Тема: Интересная галерея, добить • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1620
ZION3312 пишет:
Vladimir Kheifets пишет:
ZION3312 пишет:
Vladimir Kheifets
Есть проблемка. В галерее к примеру 9 картинок. И когда только открыл страницу, выводит последнюю картинку.
При наведении и убирании мышки, появляется как надо первая картинка.
Как сделать что бы сразу первая появлялась а не последняя, после полной загрузки страницы.
Вот сам сайт https://cs-exe[dot]ru/ (первые 2 новости тестируются)


Вам нужно добавить обработчик загрузки последней картинки
CODE (javascript):
скопировать код в буфер обмена
  1. lastImgEl = document.querySelectorAll(".images").lastChild;
  2. lastImgEl.addEventListener('load', function () {
  3.   setActiveEl(hvrSectors.firstChild);          
  4. });


Не помогло. Может както реализовать одновременную загрузку всех изображений?


Посмотрел страницу. Вы забыли написать, что на ней несколько слайдеров.
Посмотрите фрагмент нтмл кода, который повтряется для каждого слайдера.
CODE (html):
скопировать код в буфер обмена
  1. <div class="images">
  2. <ul class="xfieldimagegallery gallery">
  3. <li>
  4. <a href="https://cs-exe.ru/uploads/posts/2022-01/1643109488_1.jpg" onclick="return hs.expand(this, { slideshowGroup: 'xf_44_gallery' })" target="_blank">
  5. <img src="/uploads/posts/2022-01/thumbs/1643109488_1.jpg" alt="" class="lazy" style="display: block;"></a></li>
  6. <li>
  7. ...
  8. </div>
  9. <div class="hvr__sectors">
  10. <div class="hvr__sector"></div>
  11. <div class="hvr__sector"></div>
  12. <div class="hvr__sector"></div>
  13. ...
  14. </div>
Поэтому не помогло.
К сожалению, у меня нет возможности проверить. Попробуйте так:
CODE (javascript):
скопировать код в буфер обмена
  1. imagesNodeList = document.querySelectorAll(".images");
  2. hvr__sectorsNodeList = document.querySelectorAll(".hvr__sectors");
  3. for (i = 0; i < imagesNodeList.length; i++) {  
  4.   lazyNodeList=imagesNodeList[i].querySelectorAll(".lazy");  
  5.           lazyNodeList.lastChild.EventListener('load', function () {
  6.                  setActiveEl(hvr__sectorsNodeList[i].firstChild);          
  7.           });
  8.   }    
  9. }
Vladimir Kheifets Отправлено: 25 Января, 2022 - 15:24:52 • Тема: Интересная галерея, добить • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1620
ZION3312 пишет:
Vladimir Kheifets
Есть проблемка. В галерее к примеру 9 картинок. И когда только открыл страницу, выводит последнюю картинку.
При наведении и убирании мышки, появляется как надо первая картинка.
Как сделать что бы сразу первая появлялась а не последняя, после полной загрузки страницы.
Вот сам сайт https://cs-exe[dot]ru/ (первые 2 новости тестируются)


Вам нужно добавить обработчик загрузки последней картинки
CODE (javascript):
скопировать код в буфер обмена
  1. lastImgEl = document.querySelectorAll(".images").lastChild;
  2. lastImgEl.addEventListener('load', function () {
  3.   setActiveEl(hvrSectors.firstChild);          
  4. });
Vladimir Kheifets Отправлено: 25 Января, 2022 - 06:38:30 • Тема: Интересная галерея, добить • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 1620
ZION3312 пишет:
Имеется красивая галерея, но нужна небольшая модернизация.
Когда наводишь курсор меняется картинка, и когда убираешь курсор то остается та картинка на которой убралась мышка.
Задача! Нужно что бы при убирании мышки, возвращалось на первую картинку.
Вот сам скрипт, типа что то допилить надо в js. Но тут я не силен.
https://dimox.name/hover-images-slider-preview/


Добрый день!
Попробуйте добавить обработчик:
в native JavaScript
CODE (javascript):
скопировать код в буфер обмена
  1. hvrSectors.addEventListener('mouseout', function () {
  2.   setActiveEl(hvrSectors.firstChild);          
  3. });
в jQuery
CODE (javascript):
скопировать код в буфер обмена
  1. hvrSectors.on('mouseout', function () {
  2.   setActiveEl($(hvrSectors.firstChild));        
  3. });
Удачи!
Vladimir Kheifets Отправлено: 24 Января, 2022 - 17:39:57 • Тема: Какие данные обычно грузят в ответе AJAX • Форум: Вопросы новичков

Ответов: 3
Просмотров: 339
DlTA пишет:
Vladimir Kheifets пишет:
Главное корректная структура данных, а что в кавычках ни какой роли не играет.

это хорошо,
почему я думал что у меня не так, я смотрел на ответу у vk и других сайтов, у них обычно передают не часть html, обычно передаются данные для формирования html уже в браузере

Vladimir Kheifets пишет:
Показывает
Цитата:
{
"0":"<b>Fruits</b>",
"1":"{a:Apple}",
"2":"Orange",
"3":"Grape"
}

это не указано json_decode($data, 1)

Добавил
PHP:
скопировать код в буфер обмена
  1. <?echo "<pre>";
  2. print_r(json_decode($data,1));
  3. /*
  4. Array
  5. (
  6.     [0] => <b>Fruits</b>
  7.     [1] => {a:Apple}
  8.     [2] => Orange
  9.     [3] => Grape
  10. )
  11. */
  12. ?>


(Добавление)

Если по ощущениям что-то не так с json, добавьте в Ваш код перед json_decode:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch (json_last_error())
  3.         {
  4.         case JSON_ERROR_NONE:
  5.             echo ' - Ошибок нет';
  6.         break;
  7.         case JSON_ERROR_DEPTH:
  8.             echo ' - Достигнута максимальная глубина стека';
  9.         break;
  10.         case JSON_ERROR_STATE_MISMATCH:
  11.             echo ' - Некорректные разряды или несоответствие режимов';
  12.         break;
  13.         case JSON_ERROR_CTRL_CHAR:
  14.             echo ' - Некорректный управляющий символ';
  15.         break;
  16.         case JSON_ERROR_SYNTAX:
  17.             echo ' - Синтаксическая ошибка, некорректный JSON';
  18.         break;
  19.         case JSON_ERROR_UTF8:
  20.             echo ' - Некорректные символы UTF-8, возможно неверно закодирован';
  21.         break;
  22.         default:
  23.             echo ' - Неизвестная ошибка';
  24.         break;
  25.     }
  26.     echo "<hr>";
  27. ?>
Vladimir Kheifets Отправлено: 24 Января, 2022 - 16:42:55 • Тема: Какие данные обычно грузят в ответе AJAX • Форум: Вопросы новичков

Ответов: 3
Просмотров: 339
DlTA пишет:
у меня на сайте я получаю данные через json ответ, но ощущение что что-то не так,
обычно туда вставляю часть html кода или данные.

НО может есть вариант как будет правильней отвечать?


Добрый день!
Как Вы получаете ответ и что по ощущениям не так?
Про часть html кода в json.
Главное корректная структура данных, а что в кавычках ни какой роли не играет.
Например, файл content.json
CODE (javascript):
скопировать код в буфер обмена
  1. {
  2. "0":"<b>Fruits</b>",
  3. "1":"{a:Apple}",
  4. "2":"Orange",
  5. "3":"Grape"
  6. }

Браузер открывает чисто.
PHP тоже грузит без проблем
PHP:
скопировать код в буфер обмена
  1. <?
  2. $data = file_get_contents("content.json");
  3. echo "<textarea rows=30 cols=80>$data</textarea>";
  4. ?>
Показывает
Цитата:
{
"0":"<b>Fruits</b>",
"1":"{a:Apple}",
"2":"Orange",
"3":"Grape"
}

Удачи!

Страниц (59): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB