Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70

Как передавать данные из цикла php в javascript

26.09.2015, 14:49. Показов 2307. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени! Подскажите пожалуйста как реализовать такую задачу: есть скрипт, который получает конечную дату и начальную дату, вычисляет разницу и показывает оставшееся время до окончания события. Все это происходит в php, тоесть получаю даты из произвольных полей админки сайта таким образом: например дата 26.09.2015
PHP
1
<?php $start_date = explode(".", $start_date) ?>
и передаю в скрипт так:
JavaScript
1
var start_date = new Date(<?php echo $start_date[1] ?>, <?php echo $start_date[0] ?>, <?php echo $start_date[2] ?>, "00:00:00" );
Также передаю и конечную дату. Когда данные из произвольного поля получаются без цикла, тоесть для одной записи, то все срабатывает, а когда в цикле получается ерунда. Пробовал крутить скрипт в цикле, но тоже не помогает. Помогите советом как реализовать все это? Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2015, 14:49
Ответы с готовыми решениями:

Как передать данные JavaScript в GET параметр PHP?
в странице есть список сотрудников компании. при клике на определенного сотрудника выходит модальное окно с оценкой качества его работы и...

Как получить данные с JavaScript в PHP
Проблема в том, что при нажатии элемента в таблице я достаю id нужной строки. Вот код как я создаю таблицу: while($valrezerv =...

Получить данные из цикла php
Здравствуйте. Помогите разобраться вот в чём. Есть такой пхп код $query_cont= &quot;SELECT * FROM offer_auto ORDER BY RAND() LIMIT 3&quot;; ...

38
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 15:20
dfinchenko, у вас эхо строку выводит или число?

Добавлено через 21 секунду
если строку, то надо и в js показать, что строку

Добавлено через 24 секунды
кстати не так давно была тема, что у пхп и js разные форматы дат
и ваше эхо может сработать не правильно
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 15:28  [ТС]
BANO, да, чтобы не было конфликтов, я дату полученную в php разбиваю на числа и ложу в массив, в свою очередь в javascript вывожу с помощью echo числа, а javascript сам формирует из них дату.

Добавлено через 1 минуту
Без цикла скрипт все отлично отрабатывает, выводит и считает время до окончания.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 15:32
ну вы зря поставили 4 параметр

а код примерно такой
JavaScript
1
2
3
start=new Date(<?php echo $start_date[1] ?>, <?php echo $start_date[0] ?>, <?php echo $start_date[2] ?>);
end = new Date(<?php echo $end_date[1] ?>, <?php echo $end_date[0] ?>, <?php echo $end_date[2] ?>);
result = end-start;
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 15:37  [ТС]
BANO, код реализован и работает если данные даты получается один раз, не в цикле, просто в цикле значения меняются и скрипт синхронно с циклом не обрабатывает, даже если код скрипта в цикл добавляю.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 15:46
dfinchenko, дайте весь цикл
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 15:56  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php while($sale_query -> have_posts()) : $sale_query -> the_post(); ?>
                         
    <?php $starting = get_post_meta($post->ID, 'stating', true) ;
                             $starting = explode(".", $starting);
 
$ending = get_post_meta($post->ID, 'ending', true) ;
                             $ending = explode(".", $ending);
 
                            ?> 
    
               
                                <div class="sales-item-info">
 
                                </div>
                                <div class="sales-item-actions">
                                    
                                    <div class="sales-item-lower-timer">
                                        <div id="tim" class="timer">
                                            <div class="timer-block">
                                                <span id="getdays" class="timer-days">
                                                    
                                                </span>
                                                <span class="timer-text">дней</span>
                                            </div>
                                            
                                            <span class="divider">:</span>
                                            <div class="timer-block">
                                                <span id="gethours" class="timer-hours">
                                               
                                                </span>
                                                <span class="timer-text">часов</span>
                                            </div>
                                           <span class="divider">:</span>
                                            <div class="timer-block">
                                                <span id="getmins" class="timer-minutes">
                                                    
                                                </span>
                                                <span class="timer-text">минут</span>
                                            </div>
                                        </div>
                                    </div>
                                    <span href="#" class="sales-item-link-short btn-square">
                                        Смотреть
                                    </span>
                                </div>
                            </a>
                        </div>
                             <script type="text/javascript"> 
  
                             timetoaction();
                               function timetoaction() {
    var now = new Date();
                                 
    var starting = new Date("<?php echo $starting[1] ?>,<?php echo $starting[0] ?>,<?php echo $starting[2] ?>, 00:00:00");
    var ending = new Date("<?php echo $ending[1] ?>,<?php echo $ending[0] ?>,<?php echo $ending[2] ?>, 00:00:00");
                                  
    var totalRemains = (ending.getTime()-now.getTime());
  if (totalRemains>1)
    {
        var RemainsSec=(parseInt(totalRemains/1000));
        
          var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
        
        var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
        
        var RemainsFullHours=(parseInt(secInLastDay/3600));
        
        if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
        
        var secInLastHour=secInLastDay-RemainsFullHours*3600;
        
        var RemainsMinutes=(parseInt(secInLastHour/60));
        
        if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
        
        var lastSec=secInLastHour-RemainsMinutes*60;
        
        if (lastSec<10){lastSec="0"+lastSec};
        
         document.getElementById("getdays").innerHTML = RemainsFullDays;
        
         document.getElementById("gethours").innerHTML = RemainsFullHours;
         
        document.getElementById("getmins").innerHTML = RemainsMinutes;
     
          setTimeout("timetoaction()",10);
        
    } 
    else {document.getElementById("tim").style.display = "none";}
}
                             
                            </script>    
                    
                             
                            
        <?php
            endwhile;
            wp_reset_query();
        ?>
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 16:48
dfinchenko, хорошо
теперь понятно откуда данные берутся
только не понятно что именно вас не устраивает
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 16:51  [ТС]
BANO, именно так сейчас скрипт не отрабатывает, на одном блоке только выводит счетчик и то данные как будто сплюсованы. Когда цикл убираю, то все норм на одном блоке все работает хорошо.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 17:07
dfinchenko, вы используете одно название переменной для разных значений, это ошибка, надо либо сгенерировать случайное имя и потом его использовать для каждого блока, либо как-то прикрепить данные как свойство блока
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 17:12  [ТС]
BANO, спасибо! Буду разбираться и тестить!

Добавлено через 38 секунд
BANO, если будут идеи, подскажите пожалуйста как именно можно реализовать.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 17:17
dfinchenko, по мне, тк лучше сделать массив объектов в одном скрипте, а блоки генерировать потом, по данным массива js
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
26.09.2015, 17:33
dfinchenko, извращенец
1. напиши правильно mysql запрос и прямо в нем формируй нужный вывод даты
2. Научись отделять html, php, js. В твоем коде это каша
3. Открой для себя нормальный редактор кода. PhpStorm, NetBeans
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 17:35  [ТС]
Poznakomlus, может я конечно, отстал от жизни, но как мне в шаблоне WordPress отделить php от html? Код js соответственно лежит в отдельном файле.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 17:40
Poznakomlus, мы с ним напару извращенцы, но я ещё могу понять эти извращения, а он не имеет опыта работы с таким "красивым" кодом
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 17:44  [ТС]
Poznakomlus, что же вы, покажите мастер-класс как в шаблоне вордпресса отделить php и html. Вам многие буду благодарны!
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 17:48
dfinchenko, да ладно вам
ну человек просто не знает всех обстоятельств
а на самом деле все скрипты надо реально выводить в отдельный файл

могу предложить вот, что

загружается страница(без php) на ней ajax обращается к php скрипту, который возвращает значения из вашей mysql, а скрипт на клиенте получает эти данные и по результату, который он получил генерирует эти ваши "блоки"
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
26.09.2015, 17:50  [ТС]
BANO, спасибо большое!
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
26.09.2015, 17:53
dfinchenko, а можно даже сделать псевдо скрипт и там все данные дать
HTML5
1
2
3
<script id="date-arr" type="x-myowndataheader/x-data">
<?php /*f тут ваш цикл, который должен выводить данные например по строкам и дата(начальная и конечная должны разделяться каким-нибудь знаком, например @)*/?>
</script>
Добавлено через 45 секунд
ну а потом уже на чистом js берём тест из этого псевдоскрипта и генерируем по нему данные

Добавлено через 33 секунды
но как ни крути это всё - извращение, которое ещё надо поискать
0
4 / 4 / 0
Регистрация: 13.10.2013
Сообщений: 70
27.09.2015, 17:37  [ТС]
Может кто-то знает как проще это все реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2015, 17:37
Помогаю со студенческими работами здесь

Как передать данные из PHP в Javascript(VK API)
Как можно в данный код function setHtmlChat(objChat) { var chatrows = ''; // stores the area with chat lines var chatusers...

Как из php файла передать данные в переменную javascript
Обращаюсь по АПИ к стороннему сервису. В ответ получаю данные: Array ( =&gt; Array ( =&gt; 1122...

Можно ли в Java передавать данные по сети допустим с андроида в PHP сервер???
Можно ли в Java передавать данные по сети допустим с андроида в PHP сервер???

Javascript кнопка в html элементе php цикла
Приветствую. Сразу сообщу - опыта в написани чего-либо в яве нет, разве что сталкивался просто не раз. Делаю поиск по mysql базе данных,...

Как передавать данные?
Здравствуйте. Написал службу, которая через сокет получает данные (несколько переменных double). Какие есть способы передачи этих данных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru