Sortare crescator /descrescator dupa valoare din Select list
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
patricia
- Mesaje:82
Sortare crescator /descrescator dupa valoare din Select list
Buna,
Am incercat un script: in pagina sunt mai multe imagini, sub fiecare imagine exista un div al carui continut este pretul produsului afisat in imagine.
Prin intermediul unei liste de selectie doresc ca la selectarea valorilor crescator sau descrescator sa se schimbe continutul acelor etichete DIV si al imaginilor, valorile fiind preluate din doi Array.
Am incercat scriptul acesta, dar nu functioneaza, trebuie sa procedez altfel?
Cod: Selectaţi tot
<form>
<select name="sortare" onchange="sorteaza();">
<option value="crescator">crescator</option>
<option value="descrescator">descrescator</option>
</select>
</form>
<img src="img1.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">120RON</div><br><br><br>
<img src="img3.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">100RON</div><br><br><br>
<img src="img4.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">90RON</div><br><br><br>
<img src="img5.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">60RON</div><br><br><br>
<script type="text/javascript">
function sorteaza(){
preturi=['60RON','90RON','100RON','120RON'];
imagini=['img1.jpg','img3.jpg','img4.jpg','img5.jpg'];
if(document.forms[0].sortare.selectedIndex==0){
aux2=null;
aux2=document.getElementsByTagName('div');
for(var i=0;i<aux2.length;i++){
aux2[i].innerHTML=preturi[i];
document.images[i].src=imagini[i];
}}
else{
aux2=null;
aux2=document.getElementsByTagName('div');
for(var i>aux2.length;i=0;i--){
aux2[i].innerHTML=preturi[i];
document.images[i].src=imagini[i];
}}
}
</script>
MarPlo
Mesaje:4343
Buna,
In script-ul dat de tine e gresala de sintaxa la:
for(var i>aux2.length;i=0;i--)
Corect vine asa:
- Daca ai folosi browser-ul Firefox cu addon-ul Firebug, ti-ar descoperi aceste greseli.
Plus greseli de logica, in acele Array nu ai elemente cu index de ordine (i) mai mari decat:
aux2.length . Ar merge asa:
Sau poti incearca varianta asta:
Cod: Selectaţi tot
<form>
<select name="sortare" onchange="sorteaza(this.value);">
<option value="crescator">crescator</option>
<option value="descrescator">descrescator</option>
</select>
</form>
<img src="img1.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">120RON</div><br><br><br>
<img src="img3.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">100RON</div><br><br><br>
<img src="img4.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">90RON</div><br><br><br>
<img src="img5.jpg" width="200" height="200"><br>
<div class="pret" style="background-color:red;color:white;font-width:bold;font-size:30px;">60RON</div><br><br><br>
<script type="text/javascript">
function sorteaza(val){
var preturi = ['60RON','90RON','100RON','120RON'];
var imagini = ['img1.jpg','img3.jpg','img4.jpg','img5.jpg'];
var aux2 = document.getElementsByTagName('div');
var nr_aux2 = aux2.length;
for(var i=0; i<nr_aux2; i++){
var ixadd = (val == 'crescator') ? i : nr_aux2 - i - 1;
aux2[i].innerHTML = preturi[ixadd];
document.images[i].src = imagini[ixadd];
}
}
</script>
Subiecte similare
- Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...