SELECT + OnChange

  • Автор темы Автор темы Mad777
  • Дата начала Дата начала

Mad777

Новичок
SELECT + OnChange

Помогите найти выход из ситуации. Об этом уже говорили, но у меня немного другой вопрос.
Мне как тут и говорилось нужно реализовать выборку страна город используя два select-a.
Для этого, что бы сформировать запрос для вывода городов, надо получить данные страны, для этого отправляем данные так:
<select name='country' onChange="document.form.submit();">
Но тут проблема другие данные тоже отправяться, а мне только сформировать запрос к базе, и для этого достаточно страны, а другие данные отправлять только по нажатию на кнопку. Так как тут быть?
 
отправляй другую форму, грузи данные через ифрейм или кури АЯКС
 
присвой id в теге, получи ссылку через getElementById и превед
 
Автор оригинала: DiMA
присвой id в теге, получи ссылку через getElementById и превед
а немного попдробней, а то я не понял в каком теге? и что дальше?

-~{}~ 26.05.06 18:09:

Может кто расстолкует, что хотел сказать Дима?

-~{}~ 26.05.06 18:16:

я только нашел такой вариант <INPUT TYPE='submit' Value=' пщ ' style="visibility:hidden">
скрить кнопку формы
 
Автор оригинала: Mad777
я только нашел такой вариант <INPUT TYPE='submit' Value=' пщ ' style="visibility:hidden">
скрить кнопку формы
Код:
<INPUT TYPE='submit' Value=' пщ ' id='button'>
<script>
function toggle(bObj){
  if(bObj.style.display != 'none'){
     bObj.style.display = 'none';
  } else {
    bObj.style.display = 'inline';
  }
  return true;
}
</script>

<a href="#" onclick="toggle(document.getElementById('button'));">Show/Hide button</a>

юзай на здоровье
 
Автор оригинала: AdminGorkyRu
Код:
<INPUT TYPE='submit' Value=' пщ ' id='button'>
<script>
function toggle(bObj){
  if(bObj.style.display != 'none'){
     bObj.style.display = 'none';
  } else {
    bObj.style.display = 'inline';
  }
  return true;
}
</script>

<a href="#" onclick="toggle(document.getElementById('button'));">Show/Hide button</a>

юзай на здоровье
Спасибо. Это конечно, интересно, но для моей задачи излишество.
 
как вариант:
... onchange="document.getElementById('id_ифрейма').src = '/скрипт_выборки_городов.php?country=' + this.value" ...
 
С двумя формами не проходит так, как форму в форму не вложить, ошибку выдает. Пробовал с iframe тоже, что-то нето. Или что-то нитак делаю :(
 
А как можно сделать refresh страницы из iframe.
У меня получилось так: На index.php странице использую ифрэйм. А там уже select и на OnChange = document.form.submit();
Пытался так OnChange = document.form.submit(); window.location.reload();
Рефрешит только ту каторая в ифрэйм, а надо index.php.
Как сделать?
 
а что мешает сделать вторую форму.. где-нибкдь внизу страницы, с одним hidden полем, а селекту на onChange назначить событие, например такое:
Код:
<script>
function sendCountry(selectObject){
   document.getElementById('id_hidden_country').value = selectObject.options[selectObject.selectedIndex].value;
  document.getElementById('id_second_form').submit();
}
</script>

<form action="some_action_1" method="POST">
<select name="country" onchange="sendCountry(this);">
<option>...</option>
...
<option>...</option>
</select>
</form>

<form id="id_second_form" action="some_action_2" method="POST">
<input type="hidden" name="country_id" id="id_hidden_country" value="">
</form>
 
Автор оригинала: AdminGorkyRu
а что мешает сделать вторую форму.. где-нибкдь внизу страницы, с одним hidden полем, а селекту на onChange назначить событие, например такое:
Код:
<script>
function sendCountry(selectObject){
   document.getElementById('id_hidden_country').value = selectObject.options[selectObject.selectedIndex].value;
  document.getElementById('id_second_form').submit();
}
</script>

<form action="some_action_1" method="POST">
<select name="country" onchange="sendCountry(this);">
<option>...</option>
...
<option>...</option>
</select>
</form>

<form id="id_second_form" action="some_action_2" method="POST">
<input type="hidden" name="country_id" id="id_hidden_country" value="">
</form>
А вот за это огромное спасибо, наставили на путь истиный, а то я уперся в этот ифрэйм (
 
Автор оригинала: AdminGorkyRu
:)) да незачто...
а допустим у меня во первой форме так
form action="some_action_1" method="POST">
<input type=text name="name">
<select name="country" onchange="sendCountry(this);">
<option>...</option>
...
<option>...</option>
</select>
</form>
Тада как мне с этим sendCountry(this); ещё передать и то что в name?
 
Код:
<input type=text name="name" id="tx_name">
<select name="country" onchange="sendCountry(this, document.getElementById('tx_name').value);">

и функцию JavaScript нужно соотвественно изменить... добавить еще один аргумент и его использовать как тебе нужно..
 
Автор оригинала: AdminGorkyRu
Код:
<input type=text name="name" id="tx_name">
<select name="country" onchange="sendCountry(this, document.getElementById('tx_name').value);">

и функцию JavaScript нужно соотвественно изменить... добавить еще один аргумент и его использовать как тебе нужно..
Такой аргумент где-то?

document.getElementById('tx_name').value = document.getElementById('tx_name').value;
 
я тебе уже все разжевал... настоятельно рекомендаю мануал по JavaScript прочитать.. раздел functions..
 
Сверху