Autor Zpráva
jjj
Profil *
Hezky den. Vcera jsem tu psal o problemu selectu zavisleho na jinem. Cele to nakonec vyresil, jeste jednou dekuji, habendorf.
Pridal se mi k tomu vsemu ale jeden dalsi problem, na nejz radeji zakladam novy topic.

O co mi konkretne jde: mam formular. V prvnim selectu si clovek vybere znacku, nacez se mu objevi druhy select s produkty pouze te konkretni znacky. To je vyreseno. Ovsem problem toho formulare je, ze by ciste teoreticky vzato mely mit vsechny selecty s vyberem konkretniho produktu stejny atribut name. Z praktickeho hlediska to ovsem nefunguje, protoze pak se mi v pozadavku na zpracovavajici skript nashromazdi pet takovyhlech atributu name, cimz se to cele shodi.
Napadlo me tedy reseni, kdy atribut name nebudu normalne vyplnovat, ale priradim ho az ve chvili, kdy si clovek ten konkretni select zvoli.

Kod:


<style type="text/css">
.s111 {display:none}
</style>
<script type="text/javascript">
function vypis(volba)
{
for (i=1; i <= 5; i++)
{
document.getElementById('volba'+i).style.display='none';
}
document.getElementById(volba).style.display='block';
}
</script>

...


<form method="get" action="http://ma-site.com/search.php" name="searchweb">
<input type="hidden" name="album" value="search" />
<input type="hidden" name="type" value="full" />
<p>Značka<br/>
<select size="1" class="s1" id="volba0" onchange="vypis(this.options[this.selectedIndex].value);">
<option selected="selected">Vyberte značku</option>
<option value="">----------------------</option>
<option value="volba1" onclick="document.getElementById('volba1').name = 'search';">Škoda</option>
<option value="volba2" onclick="document.getElementById('volba2').name = 'search';">BMW</option>
<option value="volba3" onclick="document.getElementById('volba3').name = 'search';">Mercedes-Benz</option>
<option value="volba4" onclick="document.getElementById('volba4').name = 'search';">Chrysler</option>
<option value="volba5" onclick="document.getElementById('volba5').name = 'search';">Jeep</option>
</select>
<select size="1" class="s111" id="volba1">
<option selected="selected" value="">Vyberte auto</option>
<option value="skoda 120"> -- Škoda 120</option>
</select>
<select size="1" class="s111" id="volba2">
<option selected="selected" value="">Vyberte auto</option>
<option value="bavor 3"> -- BMW M3</option>
</select>
<select size="1" class="s111" id="volba3">
<option selected="selected" value="">Vyberte auto</option>
<option value="medour mclaren"> -- Mercedes Mc-Laren</option>
<option value="medour s"> -- Mercedes S</option>
</select>
<select size="1" class="s111" id="volba4">
<option selected="selected" value="">Vyberte auto</option>
<option value="voyager"> -- Chrysler Voyager</option>
<option value="300c"> -- Chrysler 300C</option>
</select>
<select size="1" class="s111" id="volba5">
<option selected="selected" value="">Jeep</option>
<option value="x-tra"> -- Jeep X-tra</option>
</select>
</p>
<p>
<input type="submit" value="Hledej!" />
</p>
</form>


V Mozille, Opere a dalsich inteligentnich prohlizecich to funguje takto: clovek vybere znacku, zobrazi se mu jeji vyrobky, tomu selectu s vyrobky se automaticky javascriptem priradi atribut name a vse funguje skvele.

V IE to funguje takto: clovek vybere znacku, zobrazi se mu jeji vyrobky, tomu selectu s vyrobky se ale automaticky javascriptem atribut name NEPRIRADI, konecny vysledek tedy neni zadny.

Nemate prosim nekdo reseni, jak prinutit k tomu kroku i IE?
Predem diky vsem.

JJJ
habendorf
Profil
Napadlo me tedy reseni, kdy atribut name nebudu normalne vyplnovat, ale priradim ho az ve chvili, kdy si clovek ten konkretni select zvoli.

A co zkusit přiřadit ho až v okamžiku submitování formuláře?
jjj
Profil *
Dobra idea, bohuzel technicke reseni, tedy jak zjistit, kteremu selectu to ma vlastne name=search priradit, me nejak nenapada :-(
Leo
Profil
Predelejte to na dynamicke mazani a pridavani options, Leo
jjj
Profil *
Leo >> Nemohl byste prosim trosku vice upresnit?
habendorf
Profil
Leo: jo, bylo by to lepší, už jsem si taky říkal


jjj: stvořil jsem takovou zrůdu, za kterou se sice stydím, ale funguje ve všem, tak jako rychlá pomoc by mohla stačit

1) vyhoď všechny onclicky na optionech
2) na form pověs tenhle děs
onsubmit="document.getElementById(document.getElementById('volba0').op tions[document.getElementById('volba0').selectedIndex].value).name='se arch';"
Leo
Profil
"Nemohl byste prosim trosku vice upresnit?"

Mohl. Nejprve options zruste (poli options daneho selectu jednoduse priradte length=0), a pak tam pridejte ty, co jsou potreba pres ... ale co to budu rozepisovat, tady to mate:

http://www.quirksmode.org/js/options.html

Leo
jjj
Profil *
Vyzkousim obe dve metody. Kazdopadne moc vam, panove, dekuji. Jste vazne dobri! Jeste jednou diky. JJJ
Anonymní
Profil *
je to skvělé akorát nevím jak udělat abych dostal value do db i z toho porvního selectu třeba škoda

ICQ 316-071-469
email ivo@solansky.tk
Toto téma je uzamčeno. Odpověď nelze zaslat.