Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2014, 21:13
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Перенос данных
Добрый вечер дорогие форумчане!

Есть задача не знаю можно ли ее осуществить?!

Имеется информация в таком типе!

Страница №1
<div class="over-1">ТЕСТОВЫЙ ТЕКСТ ОДИН</div>
<div class="over-2">ИНФОРМАЦИЯ ОДИН</div>
<div class="over-3">ТЕКСТ ДВА</div>
<a href="/stuff/1-0-0-0-1">Кнопка на другую страницу</a>


Страница №2
<select size="1" class="test-1" name="filter1">
<option value="0">- выбрать -</option>
<option value="1">ТЕСТОВЫЙ ТЕКСТ ОДИН</option>
<option value="2">ТЕСТОВЫЙ ТЕКСТ ДВА</option>
</select>

<select size="1" class="test-2" name="filter2">
<option value="0">- выбрать -</option>
<option value="1">ИНФОРМАЦИЯ ОДИН</option>
<option value="2">ИНФОРМАЦИЯ ДВА</option>
</select>

<select size="1" class="test-3" name="filter3">
<option value="0">- выбрать -</option>
<option value="1">ТЕКСТ ОДИН</option>
<option value="2">ТЕКСТ ДВА</option>
</select>



Вопрос возможно ли авто заполнение селектов на второй странице при клике кнопки <a href="/stuff/1-0-0-0-1"> на первой странице??
если на странице один в <div> уже вписана альтернативная информация?? Искала подобное на форуме не смогла найти помоги пожалуйста с поиском информации по данному типу решения! Заранее большое всем спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2014, 21:58
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Если я правильно понял:
на первой странице добавьте:
document.body.onmousedown = function(t){
    if((t=t.target).tagName == 'A'){
        t.search = encodeURI(
            JSON.stringify(
                Array.prototype.map.call( 
                    document.querySelectorAll('[class^="over-"]'), 
                    function(el){ return el.innerHTML.trim() }
                )
            )
        )
    }
}

на второй:
window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var options = document.getElementsByTagName('option'), i = options.length;
        while(i--){
            if(txt.indexOf( options[i].innerHTML.trim() ) !== -1){
                options[i].selected = true;
            }
        }
    }
}

Но вообще, обычно такие вещи делают на сервере.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2014, 22:29
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Сообщение от Aetae Посмотреть сообщение
Aetae, Но вообще, обычно такие вещи делают на сервере.
Увы использую систему Ucoz максимум php json
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2014, 22:33
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Sakyra,
Спасибо большое сейчас буду пробывать)))
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2014, 22:50
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Aetae,
работает спасибо вам большое все то что мне нужно)))
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2014, 23:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Ок, тогда лучше onmousedown прописать конкретным ссылкам, примерно так:
<a href="/stuff/1-0-0-0-1" onmousedown="addSelected(event)">Кнопка на другую страницу</a>
<script>function addSelected(t){
    if((t=t.target).tagName == 'A'){
        t.search = encodeURI(
            JSON.stringify(
                Array.prototype.map.call(
                    document.querySelectorAll('[class^="over-"]'),
                    function(el){ return el.innerHTML.trim() }
                )
            )
        )
    }
}</script>
сейчас просто информация добавляется ко всем.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2014, 08:26
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Aetae,
спасибо и правда такой вариант на много лучше
Ответить с цитированием
  #8 (permalink)  
Старый 20.07.2014, 01:16
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Добрый вечер возник вопрос прощу помощи дорогие форумчане!

К примеру у меня заполнилась адресная строка таким образом
сайт.ру/stuff/1-0-0-0-1?%5B"2010","Cadillac","Escalade"%5D

при загрузке второй странице где идет авто заполнение селекторов
у меня имеется 3 селектора

Год выпуска *: В котором уже записаны все года
Марка *: В котором уже записаны марки
Модель *: В котором не чего нет если не заполнена марка

Селект выглядит так Модель *:
<select id="swF_fl" onchange="zapolnswF()">
 <option>-</option>
 </select>


как загрузилась вторая страница
селекты заполняются таким образом

Год выпуска *: 2010
Марка *: Cadillac
Модель: -

а третий селект по прежнему черточка, если выбрать любую другую марку и потом снова поставить Cadillac то селектор Модель подгружает в себя информацию, надеюсь внятно объяснила)) спасибо за внимание и прощу помощи как разобраться с этой проблемой??
Ответить с цитированием
  #9 (permalink)  
Старый 20.07.2014, 04:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Надо понимать третий select заполняется скриптом и изначально пустой, потому и не работает.

Могу предположить, что надо сделать так(вторая страница):
window.onload = function(){
    if(location.search){
        var txt = JSON.parse( decodeURI( location.search.slice(1) ) );
        var selects = document.getElementsByTagName('select'), i = selects.length;
        while(i--){
            if(selects[i].onchange){
                selects[i].onchange(); //искусственно вызываем change
            }
        }

        var options = document.getElementsByTagName('option'), i = options.length;
        while(i--){
            if(txt.indexOf( options[i].innerHTML.trim() ) !== -1){
                options[i].selected = true;
            }
        }
    }
}
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 20.07.2014, 21:47
Аватар для Sakyra
Аспирант
Отправить личное сообщение для Sakyra Посмотреть профиль Найти все сообщения от Sakyra
 
Регистрация: 30.04.2013
Сообщений: 92

Aetae,
Спасибо большое сейчас буду пробовать ваши советы!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 17:18
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
Перенос данных между полями формы Наталья Геннадьевна Events/DOM/Window 5 20.05.2011 11:19
перенос данных в динамическую таблицу Елена Общие вопросы Javascript 0 28.10.2008 15:53