javascript,select

4 отговора 385 прегледа
#1

javascript,select

Здравейте,

имам следната HTML форма:

<form name=enter_forma action=enter_data.php
method=get>

...

<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>

<input name=kind_alt_izp type=hidden value=?>

...

<input type=submit value=Submit>
</form>

Искам да запиша в hidden полето kind_alt_izp масив(или символен низ), съставен от избраните стойности на отделните SELECT полета и всяка промяна в някое поле да се отразява в масива.

Например, ако съм въвел в поле 1 "полага", в поле 2 "не", в поле 3 "не", в kind_alt_izp да имам 100.

Може ли някой да ме насочи към нещо подобно, което да погледна?

Благодаря за вниманието!

Отговор
в отговор на ivo #2

Re: javascript,select

<script>
function ChangeHiddenField(){
document.enter_forma.kind_alt_izp.value=document.enter_forma.izp0.options[enter_forma.izp0.selectedIndex].value+document.enter_forma.izp1.options[enter_forma.izp1.selectedIndex].value+document.enter_forma.izp2.options[enter_forma.izp2.selectedIndex].value;

}
</script>
<form name=enter_forma action=enter_data.php
method=get>

...

<select name=izp0 onchange=ChangeHiddenField()>
<option value=0> &#237;&#229; </option>
<option value=1> &#239;&#238;&#235;&#224;&#227;&#224; </option>
</select>

<select name=izp1 onchange=ChangeHiddenField()>
<option value=0> &#237;&#229; </option>
<option value=1> &#239;&#238;&#235;&#224;&#227;&#224; </option>
</select>

<select name=izp2 onchange=ChangeHiddenField()>
<option value=0> &#237;&#229; </option>
<option value=1> &#239;&#238;&#235;&#224;&#227;&#224; </option>
</select>

<input name=kind_alt_izp type=text>

...

<input type=submit value=Submit>
</form>

Отговор
в отговор на ivo #3

Re: javascript,select

Абе, той Сандо вече ти е отговорил но нека и аз да напиша нещо.


<script type="text/javascript">
function fillHidden(aForm)
{
/************************************
Ако не искаш разделител си
сетни това на празен стринг ("").
************************************/
var divider=":";
if(typeof aForm.tagName == 'undefined' ||
aForm.tagName != "FORM")
return;
with(aForm)
{
kind_alt_izp.value=izp0.value+divider+
izp1.value+divider+izp2.value;
}
}
</script>
<form name=enter_forma action=enter_data.php method=get
onsubmit="fillHidden(this);">

...

<select name=izp0 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp1 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp2 onchange="fillHidden(this.form);">
<option value=0> не </option>
<option value=1> полага </option>
</select>

<input name=kind_alt_izp type=hidden value=?>

...

<input type=submit value=Submit>
</form>



От неизбежното се възмущава само този, който е неразумен.

Редактирано от Учeщ на

Отговор
в отговор на Учeщ #4

Re: javascript,select

Здравейте отново, момчета! Много благодаря за помощта, всичко става, както сте ми го написали. Сега обаче изникна друг проблем:

<script>
var mas=new String("");

function saberi()
{
for (var i=0;i<3;i++)
{
current_sel='izp'+i;
val =

document.enter_forma.current_sel.options[document.enter_forma.elements.selectedIndex].val

ue;
mas=mas+val;
}
document.enter_forma.kind_alt_izp.value = mas;
}
</script>


<form name=enter_forma action=enter_data.php
method=get>

<select name=izp0>
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp1>
<option value=0> не </option>
<option value=1> полага </option>
</select>

<select name=izp2>
<option value=0> не </option>
<option value=1> полага </option>
</select>
<input type=hidden name=kind_alt_izp>";
<input type=submit value=Submit onsubmit=saberi()>
</form>


Как мога в горната JavaScript функция във всяка итерация на цикъла да асоциирам current_sel с

поле select на формата? В момента в current_sel се получава име на

поле(съответно izp0,izp1,izp2), но долният ред, чието предназначение е да вземе стойността

на полето и да я прибави към mas, не работи. Когато заменя current_sel с име на обект,

например izp0, функцията сработва. Има ли начин да конвертирам тип String в тип обект?

Можете ли да ми дадете някаква идея?

Отговор
в отговор на ivo #5

Re: javascript,select

eval("val = document.enter_forma." + current_sel + ".options[document.enter_forma.elements[ i ].selectedIndex].value");

Редактирано от Chernobyl® на

Отговор