Autor Zpráva
shas
Profil *
Ahoj vsem, mam pole kde si nadefinuji poradi v jakem se maji vypisovat jednotlive polozky, chtel bych se zepat, zda by nekdo netusil jak to spravne udelat aby se polozky vypsali v nadefinovanem poradi, viz:

    var obchody = new Array();
							
							

//ZDE DEFINUJI PORADI, POTREBUJI ABY PRVNI VE VYPISU BYL NAPRIKLAD ALBERT
							var poradi=new Array(); 
							poradi[0]="Albert";       
							poradi[1]="Coop";
							poradi[2]="Globus";
							
                            $.each(mapdata, function(index, value){
                              
							   //IF IS CHAIN IN ARRY obchody, exit LOOP , ELSE ADD CHAIN TO LIST  
                               if(jQuery.inArray(value.retezecnazev, obchody)=== -1)
							   {
							   	//alert("Neni tam");
								obchody.push(value.retezecnazev);
								
								   countOfProducts++;
                                    
									
									
                                    //CHANGE DATE FORMAT 
                                    var choppedDate  = value.platido.split('-');
									
                                    var newDate  = choppedDate[2]+"."+choppedDate[1]+"."+choppedDate[0];
                                    
                                    $("ul").append("<li data-icon=\"false\"><a data-ajax=\"false\"  href=\"show_flyer.html?id=" +
                                    value.id +
                                    "&countOfPages=" +
                                    value.strany +
                                    "&nameOfChain=" +
                                    value.retezecnazev +
                                    "  \"><img  style=\"margin-top:10px;\" src=\" "+value.img+" \"/><h3 style=\"font-size:1.5em;\">" +
                                    value.retezecnazev +
                                    "</h3><div class=\"pageCount\" style=\"font-size:0.7em;\">" +
                                    value.strany +
                                    " Stran</div><div style=\"font-size:0.7em;\" class=\"pageCount\">Platnost do: " +
                                    newDate +
                                    " </div></a> </li>");
                                
								
								
							   }
                  
                            });



Diky moc za kazdou radu
_es
Profil
shas:
Pole majú metódu sort, do ktorej môžeš ako parameter zadať porovnávaciu funkciu, podľa ktorej sa má pole zoradiť. Nepotrebuješ na to jQuery. Celý ten tvoj dotaz je nejaký nezrozumiteľný. Aké definovanie poradia? Však keď máš pole už zoradené, tak si ho vypíš tak ako je. Nejako nerozumiem, čo by mal ten komplikovaný kód vlastne robiť.
shas
Profil *
Ten kod dela to, ze napriklad retezcu Albert je nekolik, takze vyberu jen ten prvni a dale uz zadny se stejnym jmenem do vypisu nepridavam.
Tim dostanu vypis napr. 10 retezcu, Albert, Tesco, atd.. no a tyhle tetezce bych chtel vypsat v urcitem poradi ktere si nadefinuji.
_es
Profil
shas:
v urcitem poradi ktere si nadefinuji.
Ako „nadefinuješ“? Však to „nadefinovanie“ je vlastne ten výsledok. Však z toho poľa „nadefinovaného poradia“ len zisťuj, či sa tam ten prvok nachádza. Tie reťazce máš odkiaľ? Ak niekde v databáze, prečo nespravíš výpis unikátnych položiek už tam?
shas
Profil *
No poradi si chci nadefinovat svoje zde:
var poradi=new Array(); 
                            poradi[0]="Albert";       
                            poradi[1]="Coop";
                            poradi[2]="Globus";


Ano taham z databaze, nemam moznost ale upravit vypis, resp pridat poradi uz tam.
_es
Profil
shas:
No a to si nevieš spraviť cyklus na zistenie, či sa nejaká položka z toho „poradie definujúceho“ poľa nachádza v inom poli?

Ano taham z databaze, nemam moznost ale upravit vypis, resp pridat poradi uz tam.
To si nejako odporuje, snáď to ťaháš pomocou nejakého SQL dotazu, tak si sprav SQL dotaz na zoznam unikátnych položiek.
shas
Profil *
Umim, to vlastne delam abych dostal jedinecne vysledky od kazdeho retezce ale ty jsou pak vypsany jak prisli a ja proste jen chci zmenit poradi toho vypisu a nevim jak.

Z databaze se to taha ale vystupem je jSon, to jsme se spatne pochopili.
_es
Profil
shas:
Máš pole1: ty ho nazývaš pole „definujúce poradie“.
Máš pole2, v ktorom sa nachádzajú len také položky, aké sú aj v poli pole1 (predpokladám).
Definuješ si prázdne pole pole3.
Zistíš, či sa prvý prvok poľa pole1 nachádza v poli pole2, ak áno, pridáš ho do poľa pole3.
To isté spravíš pre všetky ostatné prvky poľa pole1.
A máš výsledné pole pole3.

Z databaze se to taha ale vystupem je jSon
Čo s tým má spoločný výsledný tvar výpisu? Na začiatku je snáď nejaký SQL dotaz, prečo by si si nemohol spraviť SQL dotaz na zoznam všetkých jedinečných prvkov?
shas
Profil *
To jo, jenze ja mam v kazdem vracenem resultu vice hodnot, takze pred vypisem bych je vsechny musel ulozit nekam bokem, prodat k nim poradi a az pak je nechat vypsat.

Uplne nejlepsi by bylo kdyby byla nejak funkce na sortovani listview, jelikoz poradi si uz zjistim porovnanim.
_es
Profil
shas:
Uplne nejlepsi by bylo kdyby byla nejak funkce na sortovani
Je, viď [#2], vytvor si vlastnú porovnávaciu funkciu, máš tam aj odkaz na dokumentáciu.
peta
Profil
"se polozky vypsali v nadefinovanem poradi"
<script>
var i,poradi, polozky;
poradi = [2,0,1];
polozky = ['to','kluk','Je']
for (i in poradi)
{
document.write(polozky[poradi[i]]+' ');
}

document.write('<br><br>');

var i,j,poradi, polozky, top;
poradi  = ["Albert", "Coop", "Globus"];
polozky = ['Terno','Coop','Hypernova','Globus','Mana','Albert'];
top = [];
for (i in poradi) {top[i] = [];}
// vytrizeni
for (i in polozky)
{
for (j in poradi)
 {
 if (polozky[i]==poradi[j]) {top[j][top[j].length] = polozky[i]; polozky[i] = '';}
 }
}
// vypis
for (i in top)
{
 for (j in top[i]) {document.write(top[i][j] + ' ');}
}
for (i in polozky)
{
 if (polozky[i]!='')
 {document.write(polozky[i]+' ');};
}
</script>


To je tak tezke si napsat cyklus? Pokud to budes chtit nejak profesionalne, tak pres ten sort a vlastni sort funkci, viz _es. Osobne bych upravil take sql dotaz nez to zvlast dotrizovat pomoci js.
Priklad: http://peter-mlich.wz.cz/web/js/pr2/js-tab.htm

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