18.07.2011, 14:36
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
Как заменить заменить поле в форме и отсортировать строки <option>?
Вот моя форма, для примера выкладываю только несколько полей!
<form action="<?=base_url();?>create/<?=$this->session->userdata('user_id')?>" method="post" >
<table cellpadding="4" cellpadding="2" align='center' style="margin-top: 10px; vertical-align: top;">
<tr>
<td>Страна:</td>
<td><select size='1' name='country' id='country'>
<option value='-1' selected>Выберите страну</option>
<option value='0'>Другая</option>
<?
foreach($country as $country_id)
{
echo "<option value='".$country_id['id']."'>".$country_id['country_n']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Регион:</td>
<td><select size='1' name='region' id='region'>
<option value='-1' selected>Выберите регион</option>
<option value='0'>Другой</option>
<?foreach($region as $region_id)
{
echo "<option id='".$region_id['country']."' value='".$region_id['id']."'>".$region_id['region_n']."</option>";
}
?>
</select></td>
</tr>
</table>
<input type="text" name="t" id="t" style="display: none;"/>
</form>
Меня интересует
1. Как сделать чтобы при выборе строки "Другая" в поле "Страна" появлялось обычное поле для ввода текста и у него был атрибут "name" = "country"
2. Когда выбираешь страну, мне нужно получить его value и в зависимости от этого значения, нужно оставить строки <option> в поле "Регион" с id, равный этому значению, а другие скрыть!
Последний раз редактировалось MaxD, 18.07.2011 в 15:23.
|
|
18.07.2011, 14:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от MaxD
|
1. Как сделать чтобы при выборе строки "Другая" в поле "Страна" появлялось обычное поле для ввода текста и у него был атрибут "name" = "country"
|
Как вариант сразу это поле спрятать... И по надобности его показывать/прятать...
Сообщение от MaxD
|
2. Когда выбираешь страну, мне нужно получить его value и в зависимости от этого значения, нужно оставить строки <option> в поле "Регион" с id, равный этому значению, а другие скрыть!
|
И что в этом списке тебе неподвластно?
|
|
18.07.2011, 15:00
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
выложи сюда не фарш, а HTML с отработавшим php
тогда уже можно будет говорить о чем-либо
|
|
18.07.2011, 15:20
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
Написал вот такой код, для решения первой проблемы, но он почему-то не работает?!
$('#country').change(
function(){
if($(this).val() == 0){
$('#country').hide();
$('#t').show().attr({'name':'country'});
}
});
А точнее сказать поле input просто появляется на своем месте, а не на месте select!
Последний раз редактировалось MaxD, 18.07.2011 в 15:24.
|
|
18.07.2011, 16:43
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
С первой проблемой разобрался, но вот со второй по прежнему труности!
Вот такой код на данный момент, скажите что делаю не верно!?
// Замена селекта на инпут
$('#country').change(
function(){
var val_c = $(this).val();
if(val_c == 0){
$('#country').hide().before($('#t'));
$('#t').show().attr({'name':'country'}).text('Название города');
}
// Сортировка элементов option
if (val_c > 0)
{
var opt_r = $('#region :option[value = '+val_c+']');
var opt = $('#region :option[value > 0]');
$(opt).hide();
$(opt_r).show();
}
});
Последний раз редактировалось MaxD, 18.07.2011 в 16:59.
|
|
18.07.2011, 17:51
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
оно?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(function() {
var form = $('[name="form"]'),
array = ['Челябинск', 'Севастополь'];
$('select', form).change(function() {
$('input', form).removeAttr('disabled').val(array[this.selectedIndex-1]);
});
});
</script>
<form name="form">
<select>
<option value="0">-- выберите --</option>
<option value="1">Россия</option>
<option value="2">Украина</option>
</select>
<input type="text" value="" disabled="" />
</form>
|
|
18.07.2011, 18:10
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
Не это не то!)
Мне нужно чтобы в зависимости от value выбранной страны, в поле <select name='region' id='region' оставались только те <option> у которых id равен value выбранной страны, а остальные <option> должны скрываться за исключением <option value='0'>Другой<option>!
Вот к примеру как сделать чтобы при выборе Россия, в поле регион оставались только города с id = '1', а пре выборе Литва, только с id='2'?
<tr>
<td>
<td>
<select size="1" name="country" id="country">
<option value="-1" selected="">Выберите страну</option>
<option value="0">Другая</option>
<option value="1">Россия</option>
<option value="2">Литва</option>
</select>
</td>
</tr>
<tr>
<td>Регион:</td>
<td>
<select size="1" name="region" id="region">
<option value="-1" selected="">Выберите регион</option>
<option value="0">Другой</option>
<option id="2" value="2"></option>
<option id="1" value="1">Калининград</option>
<option id="2" value="3">Сувалкия</option>
<option id="2" value="4">Жемайтия</option>
<option id="1" value="5">Нижегородская </option>
<option id="1" value="6">Воронежская</option>
</select>
</td>
|
|
18.07.2011, 18:11
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
вот прочитай эту статью !
всё станет предельно ясно
|
|
18.07.2011, 18:16
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
Я прочитал, там все объяснено на премитивном уровне, это я и сам знаю! А вот как это все совместить с переменными, не создавая никаких масивов с заранее известными строками, я так запарюсь сидеть записывать каждый регион!
И тем более я уверен в том, что все можно сделать гораздо проще и эфективнее!
Последний раз редактировалось MaxD, 18.07.2011 в 18:38.
|
|
18.07.2011, 18:30
|
Аспирант
|
|
Регистрация: 18.07.2011
Сообщений: 40
|
|
Еще раз прочитал и все равно остаюсь на той же точке "Абсолютного непонимания решения моего вопроса"!
Последний раз редактировалось MaxD, 18.07.2011 в 18:37.
|
|
|
|