Jump to content
  • 0

Значения Multiselect и Сheckbox


slavok47
 Share

Question

Столкнулся с такой проблемкой,

Из Select значение указанное в value передается в базу данных, если в Multiselect выбрано одно значение оно тоже передается, а если несколько либо передается одно, либо вообще ни какого

И собственно по чекбоксу, должно ли передаваться значение value если выбран чекбокс(checked) тоесть

<input type="checkbox" value="Зарезервировано" name="Check2" onclick="agreeForm3(this.form)" />

Или для чекбокса используется другой параметр?

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0
Столкнулся с такой проблемкой,

Из Select значение указанное в value передается в базу данных, если в Multiselect выбрано одно значение оно тоже передается, а если несколько либо передается одно, либо вообще ни какого

И собственно по чекбоксу, должно ли передаваться значение value если выбран чекбокс(checked) тоесть

<input type="checkbox" value="Зарезервировано" name="Check2" onclick="agreeForm3(this.form)" />

Или для чекбокса используется другой параметр?

Вообще никакого если не выбрано ни одного значения. А если выбрано более одного, то в запросе передается набор вида selectName=selectValue1&selectName=selectValue4&selectName=selectValue55

Чекбокс передается в виде name=value, если он нажат, и не передается ничего, если он отжат.

Link to comment
Share on other sites

  • 0
Вообще никакого если не выбрано ни одного значения. А если выбрано более одного, то в запросе передается набор вида selectName=selectValue1&selectName=selectValue4&selectName=selectValue55

Чекбокс передается в виде name=value, если он нажат, и не передается ничего, если он отжат.

Это понятно, указал метод GET для проверки, все так и передается, с чекбоксом разобрался, была опечатка в name, а вот с мультиселектом не понятно, вроде отправляются все значения, а в базу попадает только одно каторое на момент выделения нескольких оказывается в рамочке, хотя все выделены синим, и в методе GET видно что идет не одно значение :rolleyes:

Link to comment
Share on other sites

  • 0
Это понятно, указал метод GET для проверки, все так и передается, с чекбоксом разобрался, была опечатка в name, а вот с мультиселектом не понятно, вроде отправляются все значения, а в базу попадает только одно каторое на момент выделения нескольких оказывается в рамочке, хотя все выделены синим, и в методе GET видно что идет не одно значение :rolleyes:

Это уже особенности языка программирования и HTTP. Я бы собирал при помощи JS все опшины мультиселекта в хидден-поле и отправлял уже строку со значениями.

Link to comment
Share on other sites

  • 0
Это уже особенности языка программирования и HTTP. Я бы собирал при помощи JS все опшины мультиселекта в хидден-поле и отправлял уже строку со значениями.

Тоесть выбранные option сначала попадают в скрытое поле, а потом оттуда в базу? я правильно понял?

Link to comment
Share on other sites

  • 0
Абсолютно верно.

Спасибо! Понятно, буду думать. Есть еще один момент есть текстовое поле в состоянии disabled, в которое подставляется динамическое значение, из поля disabled естественно данные не передаются(а надо), вопрос можно ли из этого поля как то передать значение или рядом тоже сделать скрытое поле, тоесть которое disabled просто будет отображаться, а из скрытого это значение передастся в базу? или может еще есть варианты?

Link to comment
Share on other sites

  • 0
Спасибо! Понятно, буду думать. Есть еще один момент есть текстовое поле в состоянии disabled, в которое подставляется динамическое значение, из поля disabled естественно данные не передаются(а надо), вопрос можно ли из этого поля как то передать значение или рядом тоже сделать скрытое поле, тоесть которое disabled просто будет отображаться, а из скрытого это значение передастся в базу? или может еще есть варианты?

Дык, создавайте дополнительные поля. Есть варианты, но они вам будут малоинтересны.

Link to comment
Share on other sites

  • 0

Сделал работающий мультиселект, но есть не польшая проблемка:

 <select name="multi" id="multi_id">
<option value="0"> 111111111</option>
<option value="1"> 22222222222 </option>
<option value="2"> 333333333</option>
<option value="3"> 4444444444</option>
<option value="4"> 5555555555 </option>
</select>

проблема в следующем, в базу передаются значения value как есть (0, 1, 2, 3, 4), как сделать чтобы 0=чему то, 1=чему то и тд, подозремаю что через глобальный массив строк, но как сделать что то пока не могу додуматься, подскажите плиз!

Link to comment
Share on other sites

  • 0
проблема в следующем, в базу передаются значения value как есть (0, 1, 2, 3, 4), как сделать чтобы 0=чему то, 1=чему то и тд, подозремаю что через глобальный массив строк, но как сделать что то пока не могу додуматься, подскажите плиз!

Во, :D кажись я на верном пути :D

Сделал так:

Скрипт

<script type="text/javascript">	 
var state = new Array();
state[0] = "Техас";
state[1] = "Пенсакола";
state[2] = "Нью Йорк";
state[3] = "Севастополь";
function getData(form) {
var i = form.multi.selectedIndex;
form.manager.value = state[i];
}
</script>

Элементы

<select style="width:135px"  name="multi" id="multi_id" onchange="getData(this.form)">	
<option value="0">"Техас" </option>
<option value="1">"Пенсакола" </option>
<option value="2">"Нью Йорк" </option>
<option value="3">"Севастополь"</option>
</select>

<input type="text" name="manager" size="35" />

В таком варианте значение из Селекта передаются в input type="text" из массива, но опять возникла проблема, если это будет Мультиселект то значение в input type="text" передается только одно, почему? и правильно ли будет если использовать такой метод, только input type="text" сделать как input type="hidden", а уж потом в базу передавать из input type="hidden"?

Edited by slavok47
Link to comment
Share on other sites

  • 0

У любого селекта есть такой массив как options и такие поля как name или id.

У каждого элемента массива есть такие свойства как

* selected

* value

Создаем пустой массив.

Нужно пройти по всем опшинам селекта, и если у элемента selected == true, то добавляем value этого элемента в массив с тем индексом, как и у элемента массива.

Полученный массив можно сконвертировать в строку через метод toString() или join(), и полученную строку присвоить как значение какому-то хиддену

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy