Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.09.2017, 12:45
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

j0hnik,
Огромное вам спасибо!
Ответить с цитированием
  #12 (permalink)  
Старый 28.09.2017, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Выбор ссылки + css эффект


<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .go {
      display: none;
  }
  .go.show{
      display: block;
      overflow: hidden;
      width: 24em;
      font-size: 180%;
      white-space: nowrap;
  }

  .go.show{
       animation: typewriter 4s steps(64) 1s 1 normal both;
  }

  @keyframes typewriter{
  from{width: 0;}
  to{width: 100%;}
}

  .go a{
      text-decoration:none; display: inline-block;
  }
  .go a:after{
      display: block;content: "";height: 2px;width: 0%;background-color: #000000;
  }

  .go.show a:after{animation: typewriter .8s 3s cubic-bezier(.36,.89,.53,-0.61) both; }
  </style>

  <script>
      window.addEventListener('DOMContentLoaded', function() {
        var select = document.querySelector('.opt'),
        div = document.querySelector('.go'),
        a = div.querySelector('a'),
        inp = document.querySelector('#proso2');
        arr = [
        {href : "", text : "по умолчанию", title : ""},
        {href : "http://test1.ru/", text : "просмотр №1", title : "тут ссылка от выбранного value 1", price : "1"},
        {href : "http://test2.ru/", text : "просмотр №2", title : "тут ссылка от выбранного value 2", price : "2"},
        {href : "http://test3.ru/", text : "просмотр №3", title : "тут ссылка от выбранного value 3", price : "3"}
        ];
        arr.forEach(function(el,i) {
      select.options[i] = new Option(el.text,i)
     })
        select.addEventListener('change', function() {
          div.classList.remove("show");
          document.body.clientHeight;
          inp.value = "";
          if(this.value != "0"){
            var d = arr[this.value];
            a.href = d.href;
            a.text = d.title;
            inp.value = d.price;
            div.classList.add("show");
          }
        });
          });
  </script>
</head>

<body>
<select  class="opt"></select>
<div class="go"><a></a></div><br>
<input type="text" id="proso2"/>
</body>
</html>

Последний раз редактировалось рони, 29.09.2017 в 18:12.
Ответить с цитированием
  #13 (permalink)  
Старый 29.09.2017, 17:45
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

Доброго времени суток! подскажите пожалуйста! как вывести значение price в input?

<select id="proso">
<option value="0" title="">по умолчанию</option> 
<option value="http://test1.ru/" title="" price="1">просмотр №1</option>
<option value="http://test2.ru/" title="" price="2">просмотр №2</option>
<option value="http://test3.ru/" title="" price="2">просмотр №3</option>
</select>

<div id="proso1"><a></a></div>
<input type="text" id="proso2"/>

<script>
    document.querySelector('#proso').onchange = function() {
        var a = document.querySelector('#proso1 a');
        a.href=this.value;
        a.textContent=this.value!='0'?'тут ссылка от выбранного value':'';

        var input = document.querySelector('#proso2');
   };
</script>
Ответить с цитированием
  #14 (permalink)  
Старый 29.09.2017, 18:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Александр83
как вывести значение price в input?
смотрите пост №12 снова
Ответить с цитированием
  #15 (permalink)  
Старый 29.09.2017, 18:28
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<select id="proso">
<option value="0" title="">по умолчанию</option> 
<option value="http://test1.ru/" title="" price="1">просмотр №1</option>
<option value="http://test2.ru/" title="" price="2">просмотр №2</option>
<option value="http://test3.ru/" title="" price="2">просмотр №3</option>
</select>

<div id="proso1"><a></a></div>
<input type="text" id="proso2"/>

<script>
    document.querySelector('#proso').onchange = function() {
        var a = document.querySelector('#proso1 a');
        a.href=this.value;
        a.textContent=this.value!='0'?'тут ссылка от выбранного value':'';
				document.querySelector('#proso2').value = this.options[this.selectedIndex].getAttribute('price');
   };
</script>


Вот! но лучше сделайте "data-price", чтобы код был валидный.
Ответить с цитированием
  #16 (permalink)  
Старый 29.09.2017, 18:40
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

спасибо
Ответить с цитированием
  #17 (permalink)  
Старый 09.10.2017, 13:35
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

Доброго времени суток! подскажите как передать значение из select методом get без кнопки sunbut?
document.querySelector('#proso_engine').onchange = function() {
        var a = document.querySelector('#proso_engine_01 a');
        a.href=this.value;
        a.textContent=this.value!='0'?'<?=GetMessage("AK_03");?>':'';
        document.querySelector('#proso_engine_02').value = this.options[this.selectedIndex].getAttribute('price-engine');
   };

<form method="get" action="" name="form_engine">
<select width="100%" id="proso_engine" name="engine_php">
<option value="0" title="" price-engine="0"><?=GetMessage("AK_04");?></option> 
<?$i=0;foreach($arResult['ENGINES'] as $engine):?> 
<option value="<?=$engine['DETAIL_PAGE_URL']?>" title="" price-engine="<?=intval($engine['PRICE']['VALUE'])?>" product="<?=$engine['NAME']?>"><?=substr($engine['NAME'], 0, 48)?>&nbsp;-&nbsp;<?=intval($engine['PRICE']['VALUE'])?>&nbsp;<?=GetMessage("AK_07");?></option> 
<?endforeach;?> 
</select>
</form>
<?php
    echo $_GET['engine_php'];
?>


побывала подставить в select - <select onChange="document.getElementsByName("form")[0].submit()"> но ничего не выходит.
Ответить с цитированием
  #18 (permalink)  
Старый 09.10.2017, 17:48
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Александр83,
У вас нет формы с именем form, есть с именем name="form_engine"
Ответить с цитированием
  #19 (permalink)  
Старый 09.10.2017, 18:09
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

Dilettante_Pro,
да всё верно, извините, так и пробовала

onChange="document.getElementsByName("form_engine" )[0].submit()"
Ответить с цитированием
  #20 (permalink)  
Старый 09.10.2017, 18:20
Аватар для Александр83
Аспирант
Отправить личное сообщение для Александр83 Посмотреть профиль Найти все сообщения от Александр83
 
Регистрация: 06.03.2017
Сообщений: 93

Если php вот так.
document.querySelector('#proso_engine').onchange = function() {
        var a = document.querySelector('#proso_engine_01 a');
        a.href=this.value;
        a.textContent=this.value!='0'?'ссылка на объект':'';
        document.querySelector('#proso_engine_02').value = this.options[this.selectedIndex].getAttribute('price-engine');
   };

<form method="get" action="" name="form_engine">
<select width="100%" id="proso_engine" name="engine_php">
<option value="0" title="" price-engine="0">нет выбранного</option>
<option value="https://ссылка.рф" title="" price-engine="100" product="Имя продукта">Имя продукта&nbsp;-&nbsp; 100 &nbsp;руб.</option>
// и таких полей много....
</select>
</form>


и нужно записать в переменную значение цены то есть price-engine="100" в <?php echo $_GET['engine_php'];?> без кнопки и перезагрузки, как это сделать подскажите пожалуйста (желательно без ajax).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение формы в зависимости от select Daniel93 jQuery 8 18.06.2015 19:06
Вывод информации в зависимости от выбранных значений select Batyabest Events/DOM/Window 1 01.10.2014 05:20
Замена значений в select derbass jQuery 2 23.01.2013 20:10
Выполнение функции в зависимости от SELECT coolkostik Элементы интерфейса 3 05.01.2012 13:03
Установка кнопкой всех значений SELECT одинаково Лавсановые Волокна Элементы интерфейса 3 28.12.2010 13:28