Autor Zpráva
davis
Profil *
Dobrý večer,
Našel jsem zde tento script a potřeboval bych vypisovat do <inputu name="hodnota"> předdefinované čísla uložená ve value="" v <select name="subkat"> , jenom nevím kam mám ty hodnoty zapsat.
příklad : zvolím aaa >> aaa 2 , vypíše se číslo 145.

<form action="/xxx.html" method="POST" name="f">
<input type="text" size="10" name="hodnota" value="">
<script type="text/javascript">
        kat = new Array(3);
                kat[1] = new Array();
                kat[2] = new Array();
                kat[3] = new Array();
                kat[1][1] = 'aaa 1';
                kat[1][2] = 'aaa 2';
                kat[2][3] = 'bbb 1';
                kat[2][4] = 'bbb 2';
                kat[2][5] = 'bbb 3';
                kat[3][6] = 'ccc 1';
                kat[3][7] = 'ccc 2';
                kat[3][8] = 'ccc 3';
                kat[3][9] = 'ccc 4';
                kat[3][10] = 'ccc 5';
                
                    function change_kat(val)
    {
        document.f.subkat.options.length = 0;
        pocet = 0;
        for (i=0;i<kat[val].length;i++) {
            if (typeof kat[val][i] != "undefined") {
                pocet++;
            }
        }
        if (pocet>0) {
            document.f.subkat.options[0] = new Option('zde upřesněte','');
            j = 1;
            for (i=0;i<kat[val].length;i++) {
                if (typeof kat[val][i] != "undefined") {
                    document.f.subkat.options[j] = new Option(kat[val][i],i);
                    j++;
                }
            }
            document.f.subkat.options[j] = new Option('není tu vhodná podkategorie','0');
        } else {
            document.f.subkat.options[0] = new Option('není podkategorie','0');
        }
    }

    </script>
       <select name="kat" onChange="javascript:change_kat(this.value)">
          <option value="">Nejdříve vyberte</option>
      <option value="1">aaa</option>
      <option value="2">bbb</option>
      <option value="3">ccc</option>
    </select>
       <select name="subkat" onchange="hodnota.value=value">
          <option value="" style="width: 250pt">zde upřesněte</option>
    </select>
</form>


Moderátor DoubleThink: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
sysel
Profil
Hm, myslím, že postačí to jen trochu poladit
<input type="text" size="10" name="hodnota" value="" id="tentoinput">
........
<select name="subkat" onchange="document.getElementById('tentoinput').value=value">

nebo tak nějak.
davis
Profil *
Děkuji za tip, ale celý zde uvedený script mi je nejspíš k ničemu. Potřeboval bych hodnoty ( value ) použít z obou dvou navzájem závislých "selectů".
Tj. vypsat hodnotu ze <select name="kat"> a <select name="subkat">

Našel jsem tento script, který by mi asi vyhovoval. Potřeboval bych ale hodnotu ze <select name="stage3"> vypsat jako text, ne select.

<FORM name="isc">
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option selected>položka 1</option>
<option>položka2</option>
<option>položka3</option>
<option>položka4</option>
<option>položka5</option>
<option>položka6</option>
</select>

<select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">

<option value="hodnota " selected>---sub-položka1A---</option>
<option value="hodnota " >---sub-položka1B---</option>
</select>

<select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">

<option value=" " selected>---sub-sub-1A---</option>
<option value=" " >---sub-sub-1B---</option>
</select>

<script>
<!--



var groups=document.isc.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("---sub-položka1A---","hodnota ");
group[0][1]=new Option("---sub-položka1B---","hodnota ");

group[1][0]=new Option("---sub-položka2A---"," ");
group[1][1]=new Option("---sub-položka2B---"," ");


group[2][0]=new Option("---sub-položka3A---"," ");
group[2][1]=new Option("---sub-položka3B---"," ");

group[3][0]=new Option("---sub-položka4A---"," ");
group[3][1]=new Option("---sub-položka4B---"," ");

group[4][0]=new Option("---sub-položka5A---"," ");
group[4][1]=new Option("---sub-položka5B---"," ");

group[5][0]=new Option("---sub-položka6A---"," ");
group[5][1]=new Option("---sub-položka6B---"," ");


var temp=document.isc.stage2


function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
redirect1(0)
}



var secondGroups=document.isc.stage2.options.length
var secondGroup=new Array(groups)
for (i=0; i<groups; i++)  {
secondGroup[i]=new Array(group[i].length)
for (j=0; j<group[i].length; j++)  {
secondGroup[i][j]=new Array()  }}

secondGroup[0][0][0]=new Option("---sub-sub-1A---"," ");
secondGroup[0][1][0]=new Option("---sub-sub-1B---"," ");

secondGroup[1][0][0]=new Option("---sub-sub-2A---"," ");
secondGroup[1][1][0]=new Option("---sub-sub-2B---"," ");

secondGroup[2][0][0]=new Option("---sub-sub-3A---"," ");
secondGroup[2][1][0]=new Option("---sub-sub-3B---"," ");

secondGroup[3][0][0]=new Option("---sub-sub-4A---"," ");
secondGroup[3][1][0]=new Option("---sub-sub-4B---"," ");

secondGroup[4][0][0]=new Option("---sub-sub-5A---"," ");
secondGroup[4][1][0]=new Option("---sub-sub-5B---"," ");

secondGroup[5][0][0]=new Option("---sub-sub-6A---"," ");
secondGroup[5][1][0]=new Option("---sub-sub-6B---"," ");


var temp1=document.isc.stage3
function redirect1(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null
for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)
}
temp1.options[0].selected=true
}

function redirect2(z){
window.location=temp1[z].value
}

//-->
</script>


</FORM>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0