[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by Isis, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    570
    Likes Received:
    78
    Reputations:
    13
    Если нужно время сервера - копай в сторону AJAX.
     
  2. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    376
    Likes Received:
    343
    Reputations:
    99

    Вот, пользуйтесь на здоровье:
    PHP:
    <b id="seconds">00:00:00</b>
    <script type="text/javascript">
        (function(){
            var difference = <?php echo time() ?>*1000 - new Date(), //сразу вычисляем разницу между серверным временем и временем на клиенте
                block = document.getElementById("seconds");
            (function redraw(){
                var date = new Date(); //получаем текущую дату клиента
                date.setTime( date.getTime() + difference); //прибавляем разницу
                block.innerHTML = date.toTimeString().substring(0,8); //форматируем и выводим
                setTimeout(redraw, 1000); //запускаем таймер на повтор функции
            }())
        }())
    </script>
     
    1 person likes this.
  3. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    504
    Likes Received:
    161
    Reputations:
    3
    начал учить jquery. как можно оптимизировать этот говнокод?)
    PHP:
            var = $(".test_questions:not(.test_questions:has(:checked))");

    Суть такова что мне нужно отобрать дивы в которых нет ни одного выделеного чекбокса.
     
    #3743 zifanchuck, 31 May 2013
    Last edited: 31 May 2013
  4. bboys

    bboys New Member

    Joined:
    8 Apr 2013
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    всем привет, помогите пжлста, расшифровать адрес
    346%35%318 Ð%bf%d0%b5Ñ�.Д�¸н�%b0моÐ%b2�%81�º%d0%b8�%b9,34 %d0�%2eШ�&##176;�%85�‚Ñ� РÐ�%d1�%d1��%be%d0²%2e�¾Ð�л
    , заранее спасибо
     
    #3744 bboys, 1 Jun 2013
    Last edited: 1 Jun 2013
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,916
    Likes Received:
    749
    Reputations:
    198
    Подскажите как реализовать такое:

    PHP:
    <!--BOF Product Image Option Dropdown 66666666-->
                <?php if ($option['type'] == 'image') { ?>
                
                <?php
                
    echo '<div id="select_color_'.$i_color.'">';  // НАША ВСТАВКА
                
    ?>
                    
                
                
                <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
                  <?php if ($option['required']) { ?>
                  <span class="required">*</span>
                  <?php ?>
                  <b><?php echo $option['name']; ?>:</b><br />
                    <select name="option[<?php echo $option['product_option_id']; ?>]" id="image-option-<?php echo $option['product_option_id']; ?>">
                    </select>
                    <script type="text/javascript">
                        var ddData = [];
                        <?php foreach ($option['option_value'] as $option_value) { ?>
                            ddData.push(
                                {
                                    text: "<?php echo $option_value['name']; ?>",
                                    value: "<?php echo $option_value['product_option_value_id']; ?>",
                                    selected: false,
                                    description: "<?php if ($option_value['price']) { ?>(<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)<?php ?>",
                                    imageSrc: "<?php echo $option_value['piodd_image']; ?>"
                                }
                            );
                        <?php ?>
                        
                        $('#image-option-<?php echo $option['product_option_id']; ?>').ddslick({
                            data: ddData,
                            background: "transparent",
                            width: 300,
                            imagePosition: "left",
                            selectText: "<?php echo $text_select_your $option['name']; ?>",
                            onSelected: function (data) {
                                $("input[name='option[<?php echo $option['product_option_id']; ?>]'][value='" + data.selectedData.value + "']").attr('checked', true).trigger('click');
                                
                                
                                ВОТ ТУТ ВСТАВИТЬ:
                                Найти все id= image-option-* которые не равны, выбранному, тоесть image-option-<?php echo $option['product_option_id']; ?>
                                
                                и им сделать всем?
                                
                                $('#image-option-ЦИФРА').dsclick('select', {index: '0'});
                                $('#image-option-ЦИФРА').dsclick('select', {index: '0'});
                                $('#image-option-ЦИФРА').dsclick('select', {index: '0'});
                                $('#image-option-ЦИФРА').dsclick('select', {index: '0'});
                                $('#image-option-ЦИФРА').dsclick('select', {index: '0'});
                                ....
                                
                                
                                
                                if(typeof updatePx == 'function') {
                                    updatePx();
                                }
                            }
                        });
                    </script>
                </div>
                <div id="option-<?php echo $option['product_option_id']; ?>" class="option hidden">
                  <b><?php echo $option['name']; ?>:</b><br />
                    <table class="option-image">
                      <?php foreach ($option['option_value'] as $option_value) { ?>
                      <tr>
                        <td style="width: 1px;"><input type="radio" optionId='<?php echo $option['option_id']; ?>' imageLink='<?php echo $option_value['image']; ?>' name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
                        <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>
                        <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                            <?php if ($option_value['price']) { ?>
                            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                            <?php ?>
                          </label></td>
                      </tr>
                      <?php ?>
                    </table>
                </div>
                
                <?php
                
    echo '</div>'$i_color++; // НАША ВСТАВКА.
                
    ?>
                
                
                <?php ?>
                <!--EOF Product Image Option Dropdown-->


    ВОТ ТУТ ВСТАВИТЬ:
    Найти все image-option-* которые не равны, выбранному, тоесть image-option-<?php echo $option['product_option_id']; ?>

    и им сделать всем?

    Code:
    							$('#image-option-ЦИФРА').dsclick('select', {index: '0'});
    							$('#image-option-ЦИФРА').dsclick('select', {index: '0'});
    							$('#image-option-ЦИФРА').dsclick('select', {index: '0'});
    							$('#image-option-ЦИФРА').dsclick('select', {index: '0'});
    							$('#image-option-ЦИФРА').dsclick('select', {index: '0'});
    							....
    Готов немного вознаградить за помощь. Как я понял, просто ищем регуляркой все id=image-option-ЦИФРА но я в JS не силен, гуглить и сидеть вспоминать не особо есть время, поэтому обращаюсь к вам.

    Моя асику 282258
     
    _________________________
  6. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    520
    Likes Received:
    105
    Reputations:
    53
    Редко ругаюсь, но это надо просто выкинуть на*** и написать жс отдельно. А так же написать что должно получиться (в визуальном и логическом плане), а то чот совсем не понятно.
     
  7. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,916
    Likes Received:
    749
    Reputations:
    198
    Все тут ясно и понятно, задача тупо-примитивная найти в ДОМе регуляркой нужные ИДшники. Что вам не ясно?
     
    _________________________
  8. mirlando

    mirlando New Member

    Joined:
    14 Jun 2013
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    привет всем!
    вопрос по javascript
    учусь писать скрипты в javascript, с использованием jq. у меня делема:
    пишу сайтик и в аватарке хочу зациклить четыре фотки, чтобы они переходили одна в другую, но так чтобы каждая фотка висела секунды 4 , а потом переходила в следующую и так бесконечно, но что не могу этого сделать - подскажите как это сделать!
    вот как у меня:

    $(document).ready(function(){

    $('#fotoChange img').fadeOut(1000, function(e) {
    $(this).removeAttr('src').attr('src','images/logo_foto2.jpg').fadeIn(1000);
    });
    setInterval(e,1000);

    }); //конец ready

    меняются только две, а остальные не получается прописать! не могу зациклить и чтобы каждая фотка задерживалась(не сразу менялась)
     
  9. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    520
    Likes Received:
    105
    Reputations:
    53
    Прежде чем что-то писать, надо продумать как это будет работать (алгоритм). Напиши сюда на форум алгоритм того, как ты себе представляешь процесс смен картинок, как они хранятся в DOM'е. Типа:
    1. все картинки находятся в контейнере и display: none;
    2. по началу работы скрипта берётся первая картинка и fadeIn
    ...

    1й пункт может быть сильно разным в зависимости от исходных данных и желаний, подумай, а стоит ли src менять на новую картинку или использовать 4 подгруженных?. Это всё для примера.
     
  10. mirlando

    mirlando New Member

    Joined:
    14 Jun 2013
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    вопрос по javascript и jq

    ривет всем!
    вопрос по javascript
    учусь писать скрипты в javascript, с использованием jq. у меня делема:
    пишу сайтик и в аватарке хочу зациклить четыре фотки, чтобы они переходили одна в другую, но так чтобы каждая фотка висела секунды 4 , а потом переходила в следующую и так бесконечно, но что не могу этого сделать - подскажите как это сделать!
    вот как у меня:

    $(document).ready(function(){

    $('#fotoChange img').fadeOut(1000, function(e) {
    $(this).removeAttr('src').attr('src','images/logo_foto2.jpg').fadeIn(1000);
    });
    setInterval(e,1000);

    }); //конец ready

    меняются только две, а остальные не получается прописать! не могу зациклить и чтобы каждая фотка задерживалась(не сразу менялась)
     
  11. mirlando

    mirlando New Member

    Joined:
    14 Jun 2013
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    я тут несколько дней всего лишь и еще не совсем разобрался с функциями сайта. просто не было ответов, вот и продублировал, думая что я что то неправильно сделал в предыдущей публикации.
    Хотелось бы самому разобраться, поэтому прошу помощи!
     
  12. mirlando

    mirlando New Member

    Joined:
    14 Jun 2013
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Все фото лежат в корне сайта - в папке images. на аве сайта висит первое фото(одно из четырех). по задумке скрипт должен:
    1)брать первое фото которое уже висит на аве, убирать его через fadeOut
    2)подставлять другую фотку через атрибут src
    3)и выводить уже новую фотку через fadeIn
    и так все четыре фотки. главная задача - зациклить процесс и чтобы фотки какое то время висели(не сразу переходили одна в другую).
    я только еще изучаю javascript по видеоурокам, поэтому строго не ссудите!
    возможно это можно сделать проще, если да, то подскажите пожалуйста!
     
  13. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    520
    Likes Received:
    105
    Reputations:
    53
    если ты будешь менять src у фотки, то она будет показываться с задержкой, которая будет в из-за времени подгрузки (хотя смотря какой таймаут смены).

    Я бы сделал в общем так:
    1. сразу вставлять в страницу все картинки в один div
    HTML:
    <style>
    .avatar-rotator img {
     display: none;
    }
    .avatar-rotator img.visible {
     display: block;
    }
    </style>
    <script>
    $(window).ready(function () {
    	imageRotator
    		.init()
    		.start();
    });
    
    var imageRotator = {
    	index: 0, // текущий индекс картинки
    	timeout: 1000, // таймаут смены картинок
    	images: [], // кэш жк объектов с img
    	curImage: null, // текущая картинка отображаемая
    
    	init: function () {
    		var self = this,
    			avatars = $('div.avatar-rotator').find('img');
    
    		avatars.each(function () {
    			// наполняем кэш
    			self.images.push($(this));
    		});
    
    		this.curImage = this.images[this.index];
    
    		// возвращаем сам объект для создания цепочки вызовов
    		return this;
    	},
    	
    	change: function () {
    		var self = this;
    
    		this.curImage.fadeOut(function () {
    			self.curImage.removeClass('visible');
    
    			var nextImage = self.getNextImage();
    			nextImage.fadeIn(function () {
    				nextImage.addClass('visible');
    			});
    
    			self.start();
    		});
    	},
    
    	// старт и последующий циклический вызов
    	start: function () {
    		// .bind делает так, чтобы функция вызывалась в контексте объекта, который передан аргументом, а не в контексте window, в котором выполняет функции setTimeout 
    		setTimeout(this.change.bind(this), this.timeout);
    	},
    
    	// инкремент и возврат следующей картинки
    	getNextImage: function () {
    		this.increment();
    		self.curImage = self.images[self.index];
    		
    		return self.curImage;
    	},
    
    	// просчёт текущего индекса
    	increment: function () {
    		this.index++;
    		if (this.index >= this.images.length) {
    			this.index = 0;
    		}
    	}
    };
    </script>
    <div class="avatar-rotator">
    <img src="src1" class="visible" />
    <img src="src2" />
    <img src="src3" />
    </div>
    
    Зы. я не тестил это
     
    #3753 Melfis, 18 Jun 2013
    Last edited: 18 Jun 2013
  14. mirlando

    mirlando New Member

    Joined:
    14 Jun 2013
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    спасибо, Melfis!
    для меня это дремучий лес )))) но попробую разобраться!
     
  15. CaroleNet

    CaroleNet New Member

    Joined:
    19 Jun 2013
    Messages:
    51
    Likes Received:
    0
    Reputations:
    0
    Что нужно сделать чтобы письмо которое я посылаю Тема его был красного цвета

    Что нужно сделать чтобы письмо которое я посылаю Тема (Subject) его был красного цвета ?
     
  16. Shadow_p1raT

    Shadow_p1raT Elder - Старейшина

    Joined:
    9 Mar 2008
    Messages:
    191
    Likes Received:
    94
    Reputations:
    0
    такой вопрос, как реализовать связные списки например как вот тут http://do.ngs.ru/lc/add/ (нажать "Изменить рубрику")
    Или тут dns-shop.ru (нажать на Ваш город: xxxx)
    Есть ли готовые плагины?
     
    #3756 Shadow_p1raT, 26 Jun 2013
    Last edited: 26 Jun 2013
  17. daniel777

    daniel777 Member

    Joined:
    8 Jul 2010
    Messages:
    535
    Likes Received:
    89
    Reputations:
    37
    Есть вот такой код, который изменяет размер поля textarea в зависимости от объёма введенных данных:
    Code:
    <style>
    .resize_textarea{
    	height:100%;
    	position:absolute;
    }
    .resize{
    	position:relative;
    	width:auto;
    	height:auto;
    	white-space: pre-wrap;
    	word-wrap: break-word;
    }
    </style>
    
    <div class="resize"><textarea class="resize_textarea"></textarea></div>
    
    <script>
      (function() {
        var d = document,
            c = d.getElementsByTagName('div')[0],
            t = d.getElementsByTagName('textarea')[0],
            f = d.createTextNode('');
    		
        c.appendChild(f);
        
        function updateSize() {
           f.nodeValue = t.value + '\n\n';
        }
        
        t.onkeypress = t.onkeyup = t.onchange = updateSize;
        
        updateSize();
      })();
    </script>
    Проблема в том, что используется только первый встречающийся тег textarea, который находится внутри тега div. Это видно по вот этим участкам кода:
    Code:
    getElementsByTagName('div')[0]
    и
    Code:
    getElementsByTagName('textarea')[0]
    Хочу сделать так, чтобы этот скрипт работал с абсолютно всеми полями textarea с присвоенным классом "resize_textarea" которые есть в коде страницы. Знаю что для этого нужно использовать метод getelementsbyclassname, и в цикле перебирать все элементы, но справиться к сожалению не получаеться.
    Буду благодарен любой помощи с этим скриптом:)
     
  18. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    520
    Likes Received:
    105
    Reputations:
    53
    Code:
    // у ie < 9 нету getElementsByClass. Это хак для них. Раcкомменть, если надо.
    /*
    if(!document.getElementsByClassName) {
    	HTMLDocument.prototype.getElementsByClassName =
    		Element.prototype.getElementsByClassName = function(classList) {
    				var list = this.getElementsByTagName('*'),
    				length = list.length,
    				classArray = classList.split(/\s+/),
    				classes = classArray.length,
    				result = [], i,j;
    
    			for(i = 0; i < length; i++) {
    				for(j = 0; j < classes; j++)  {
    					if(list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
    						result.push(list[i]);
    						break;
    					}
    				}
    			}
    
    			return result;
    		}
    }
    */
    
    (function() {
    	var textareas = document.getElementsByClassName('resize_textarea'),
    		textNode = document.createTextNode(''),
    		i = 0,
    		textarea,
    		updateSize = function () {
    			this.nodeValue = this.value + '\n\n';
    		};
    
    	for (i; i < textareas.length; i++) {
    		textarea = textareas[i];
    		textarea.appendChild(textNode);
    		textarea.onkeypress = textarea.onkeyup = textarea.onchange = updateSize;
    	}
    
    	updateSize();
    })();
     
    #3758 Melfis, 28 Jun 2013
    Last edited: 28 Jun 2013
  19. tmp

    tmp Banned

    Joined:
    10 Mar 2005
    Messages:
    428
    Likes Received:
    32
    Reputations:
    1
    Помогите плиз. Ни как у меня с JS не завязывается дружба.

    Есть такое условие:

    Code:
    if (checkboxArray[i] == true)
    Что это значит? Как я понимаю -

    ЕСЛИ значение в массиве есть - то выполняется. Так? Но выполнятся не хочет. Если я прописываю просто

    Code:
    if (checkboxArray[i] )
    То все выполняется как надо. Но чувствую что так не совсем правильно.
     
  20. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    816
    Likes Received:
    140
    Reputations:
    73
    PHP:
    if (checkboxArray[i] === true)
    Или
    if (checkboxArray[i])
    Обе записи верны
    http://javascript.ru/comparison-operators
     
    1 person likes this.
Loading...
Thread Status:
Not open for further replies.