Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подставить значение для другого поля
 
 автор: web777   (17.11.2008 в 12:37)   письмо автору
 
 

здравствуйте, у меня такой вопрос, имеется выпадающее поле "city" списка городов (это поле у меня находится в div блоке, которое вызывается ввиде отдельного окошка)


<select name="city">
 <option value="0">выбрать город</option>
 ....
</select>


нужно при выборе элемента(города) подставить значение элемента в скрытое поле

<input type="hidden" name="selcity" value="">


как это можно сделать?

  Ответить  
 
 автор: mikha   (17.11.2008 в 17:17)   письмо автору
 
   для: web777   (17.11.2008 в 12:37)
 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<script> 
function chg(ch){ 
    document.form1.selcity.value = ch.value;

</script>
<form name="form1" method="post" action="">
  <select name="city" onchange="chg(this)">
    <option value="0">выбрать город</option>
    <option value="1">Орёл</option>
    <option value="2">Воркута</option>
    <option value="3">Бобруйск</option>
  </select>
  <input type="hidden" name="selcity" value="">
</form>
</body>
</html>

UP. Так формы нет?
У DIVa "id" есть? Для hidden ID можно добавить?

  Ответить  
 
 автор: web777   (17.11.2008 в 18:09)   письмо автору
 
   для: mikha   (17.11.2008 в 17:17)
 

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

ID можно добавить к скрытому полю.


ниже приведу того как у меня сейчас

див блок в котором находится город

<div class="layer quickselect hidden" id="quick_form">

  <select name="city" onChange="chg();">
   <option value="0">выбрать город</option>
   ....
  </select> 

</div>


блок открывается и закрывается с помощью jquery
ниже ссылки открывают и закрывают блок

 
открыть блок:
<a href="#" class="quickselect" onclick="$('#quick_form').toggleClass('hidden'); return false">Быстрый выбор</a>

закрыть:
<a href="#" class="close" onclick="$('#quick_form').addClass('hidden'); return false"><img src="close.gif" alt="close" /></a>


и вот сама форма со скрытым полем

<form name="form1" method="get" action="">
  <input type="hidden" name="selcity" value="">
  <input type="submit" value="Отправить">
</form>



В вашей функции я добавил одну строчку

document.getElementById("quick_form").style.display = 'none';

чтобы после выбора города блок автоматически закрывался. Это работает, но вот к сожалению почему то значение выбранного города не передаётся к скрытому полю

  Ответить  
 
 автор: mikha   (17.11.2008 в 18:42)   письмо автору
 
   для: web777   (17.11.2008 в 18:09)
 

<script>  
function chg(ch){  
    document.getElementById("selcity").value = ch.value; 
}  
</script>
<select name="city" onchange="chg(this)">
  <option value="0">выбрать город</option>
  <option value="1">Орёл</option>
  <option value="2">Воркута</option>
  <option value="3">Бобруйск</option>
</select>
<input type="hidden" name="selcity" value="" id="selcity">

  Ответить  
 
 автор: web777   (17.11.2008 в 19:20)   письмо автору
 
   для: mikha   (17.11.2008 в 18:42)
 

спасибо, именно то что нужно

правда появился ещё один вопрос, а можно ли както вывести имя выбранного элемента. Сейчас в скрытое поле подставляется ID выбранного элемента(города) а можно ли рядом както вывести название города "Орёл" если он был выбран
?

  Ответить  
 
 автор: mikha   (17.11.2008 в 20:05)   письмо автору
 
   для: web777   (17.11.2008 в 19:20)
 

function chg(ch){ 
    alert(ch.value+' - '+ch.options[ch.selectedIndex].text) 
}

ЗЫ. С этого же форума.
Всё, у нас глубокая ночь. Спать.

  Ответить  
 
 автор: web777   (17.11.2008 в 20:18)   письмо автору
 
   для: mikha   (17.11.2008 в 20:05)
 

во, то что нужно, спасибо ещё раз:)

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


document.getElementById("quick_form").style.display = 'none';


которая должна закрывать блок со списком, оно так и есть, закрывает правильно сразу после выбора города, но вот если снова открыть блок со списком городов, почему то не открывается, нажимаю на ссылку, ни какой реакции, странно. А если перезагружу страницу (F5), то блок открывается, может при закрытии какие то данные остаются, что не даёт возможности открыть блок?

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

  Ответить  
 
 автор: mikha   (18.11.2008 в 06:15)   письмо автору
 
   для: web777   (17.11.2008 в 20:18)
 

Было бы странно если бы он открывался.
Добавьте где там у вас надо
document.getElementById("quick_form").style.display = 'block';
нажимаю на ссылку никакой реакции (с)
к ней или если у вас функция вызывается, а скорее всего так и есть, и прикрутите.

  Ответить  
 
 автор: web777   (18.11.2008 в 17:56)   письмо автору
 
   для: mikha   (18.11.2008 в 06:15)
 

я тут решил изменить немного, переделал вызов открытия и закрытия блока


function quick_city(type){
  if(type == 1){
     document.getElementById("quick_form").style.display = 'block';
  }else{
     document.getElementById("quick_form").style.display = 'none';
  }  
}


теперь чтобы открыть блок нужно нажать на ссылку

<a href="#" onclick="quick_city(1); return false">Открыть</a>

если же закрыть, то

<a href="#" onclick="quick_city(0); return false">Закрыть</a>

но вот чтоб бы ещё хотелось, правда незнаю как реализовать, чтобы при нажатии на ссылку Открыть, блок открывается, и чтоб можно было нажать на туже ссылку, блок закрывался если он был открытым, это возможно реализовать?

  Ответить  
 
 автор: mikha   (18.11.2008 в 19:21)   письмо автору
 
   для: web777   (18.11.2008 в 17:56)
 

function doBlock(id){
    document.getElementById(id).style.display='block';
}
function doNone(id){
    document.getElementById(id).style.display='none';
}
function doDisplay(id){
    display = document.getElementById(id).style.display;
    if(display=='none'){
        doBlock(id);
    }else{
        doNone(id);
    }
}

Можно даже текст ссылки менять, на открыть закрыть.. но оно надо..
UP.Обрати внимание на function doDisplay.
Я не вникаю в то что там у тебя. Старайся сам думать.

  Ответить  
 
 автор: web777   (19.11.2008 в 11:51)   письмо автору
 
   для: mikha   (18.11.2008 в 19:21)
 

спасибо за код, применил я его таким образом

<a href="#" onclick="doDisplay('quick_form'); return false">Выбрать город</a>


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

да и ещё один последний вопросик, функцию я немного переделал, сейчас она выглядит таким образом

function chg(ch){

   document.getElementById("quick_form").style.display = 'none';

   cid=document.getElementById('city_id').selectedIndex;
   cname=document.getElementById('city_id').options[cid].text;

   document.getElementById("selcity_id").value = cid;
   document.getElementById("selcity_name").value = cname;
}


при выборе города, ID и имя города подставляются в поле инпут нормально как и должно быть

<input type="text" name="selcity" value="" id="selcity_id"> <br>
<input type="text" name="selcity" value="" id="selcity_name">


тут решил вставит имя не в поле инпут а в див, вот так

<div id="selcity_name"></div>

но вот тут то и не сработало почемуто. Главное в инпут вставляется а тут ни как, с чем это связанно и что нужно изменить чтобы тут подставлялось?

  Ответить  
 
 автор: mikha   (19.11.2008 в 13:27)   письмо автору
 
   для: web777   (19.11.2008 в 11:51)
 

document.getElementById("selcity_name").innerText = "текст"; // - для текста
или
document.getElementById("selcity_name").innerHTML = "HTML"; // - для текста вместе с HTML

  Ответить  
 
 автор: web777   (19.11.2008 в 13:48)   письмо автору
 
   для: mikha   (19.11.2008 в 13:27)
 

блин, как всё просто, спасибо большое за все ответы, за что мне помогли

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования