Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trie d'un tableau avec liens

    25 août 2010 à 21:31:37

    Bonjour,
    après avoir chercher sur le web et sur le forum, je n'est pas trouvé de solution.

    Voici mon problème :

    Je créer un site web et je ne connait pas du tout de langage à part le XHTML/CSS.
    Je veux creer un tableau avec mes CD et ajouter un lien pour chaque CD (Partie déjà effectué)

    Maintenant je veux deux flèche qui trie mon tableau selon le nom d'artiste, nom de l'album ou année de sortie. J'ai déjà essayer un script trouvé ici : http://www.javascriptfr.com/code.aspx?ID=29926

    Cependant cela ne marche pas car le trie est bien effectué mais les liens reste aux mêmes endroits => Exemple : La première ligne renvoi toujours au premier lien quelques soit le trie.

    Voici mon code XHTML :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    	<head>
    		<title>Discothèque de XXXX</title>
    		<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
    <style type="text/css">
    .cd_tab 
    { 
    	cursor: hand; 
    } 
     
    .cd_tab:hover 
    { 
    	background-color: DeepSkyBLue; 
    } 
    		
    table, tr, td, th 
    {
    	border: 0px;
    	border-collapse: collapse;
    	border-style : none;
    }
    </style>
    	</head>
    
    	<body>
    		<div id="image_titre"> </div>
    
    		<div id="en_tete"> <h1>Discothèque de XXX</h1> </div>
    		
    		<div id="tout">
    		
    		<div id="menu">
    			<h3 id="titre">Menu</h3>
    			<div class="sous-menu">
    				<ul>
    				    <li> <h4> <a href="#mes_cd">Mes CD</a> </h4> </li>
    					<li> <h4> <a href="#mes_dvd">Mes DVD</a> </h4> </li>
    				    <li> <h4> <a href="#concert">Les concerts</a> </h4> </li>
    				</ul>
    			</div>
    
    			<div class="sous-menu">
    				<ul>
    				    <li> <h4> <a href="liens.html">Liens utiles</a> </h4> </li>
    				</ul>
    			</div>
    		</div>
    
    		<div id="corps">
    		<p>XXXXX<br/>
    		XXXX<br/>
    		XXX</p>
    		<p>XXX</p>
    		<p>XXXX </p>
    
    		<p>Si vous avez des sugestions de CD, vous pouvez m'envoyer un mail en cliquant<a href="mailto:shigeru94@gmail.com"> ici </a>.</p>
    		</div>
    
    		<SCRIPT>
    var index
    function  sort_int(p1,p2) { return p1[index]-p2[index]; }			//fonction pour trier les nombres
    function sort_char(p1,p2) { return ((p1[index]>=p2[index])<<1)-1; }	//fonction pour trier les strings
    
    function TableOrder(e,Dec)  //Dec= 0:Croissant, 1:Décroissant
    { //---- Détermine : oCell(cellule) oTable(table) index(index cellule) -----//
    	var FntSort = new Array()
    	if(!e) e=window.event
    	for(oCell=e.srcElement?e.srcElement:e.target;oCell.tagName!="TD";oCell=oCell.parentNode);	//determine la cellule sélectionnée
    	for(oTable=oCell.parentNode;oTable.tagName!="TABLE";oTable=oTable.parentNode);				//determine l'objet table parent
    	for(index=0;oTable.rows[0].cells[index]!=oCell;index++);									//determine l'index de la cellule
    
     //---- Copier Tableau Html dans Table JavaScript ----//
    	var Table = new Array()
    	for(r=1;r<oTable.rows.length;r++) Table[r-1] = new Array()
    
    	for(c=0;c<oTable.rows[0].cells.length;c++)	//Sur toutes les cellules
    	{	var Type;
    		objet=oTable.rows[1].cells[c].innerHTML.replace(/<\/?[^>]+>/gi,"")
    		if(objet.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) { FntSort[c]=sort_char; Type=0; } //date jj/mm/aaaa
    		else if(objet.match(/^[0-9£?$\.\s-]+$/))		{ FntSort[c]=sort_int;  Type=1; } //nombre, numéraire
    		else											{ FntSort[c]=sort_char; Type=2; } //Chaine de caractère
    
    		for(r=1;r<oTable.rows.length;r++)		//De toutes les rangées
    		{	objet=oTable.rows[r].cells[c].innerHTML.replace(/<\/?[^>]+>/gi,"")
    			switch(Type)		
    			{	case 0: Table[r-1][c]=new Date(objet.substring(6),objet.substring(3,5),objet.substring(0,2)); break; //date jj/mm/aaaa
    				case 1: Table[r-1][c]=parseFloat(objet.replace(/[^0-9.-]/g,'')); break; //nombre
    				case 2: Table[r-1][c]=objet.toLowerCase(); break; //Chaine de caractère
    			}
    			Table[r-1][c+oTable.rows[0].cells.length] = oTable.rows[r].cells[c].innerHTML
    		}
    	}
    
     //--- Tri Table ---//
    	Table.sort(FntSort[index]);
    	if(Dec) Table.reverse();
    
     //---- Copier Table JavaScript dans Tableau Html ----//
    	for(c=0;c<oTable.rows[0].cells.length;c++)	//Sur toutes les cellules
    		for(r=1;r<oTable.rows.length;r++)		//De toutes les rangées 
    			oTable.rows[r].cells[c].innerHTML=Table[r-1][c+oTable.rows[0].cells.length];  
    }
    </SCRIPT>
    		
    		<div id="tableau_CD">
    			<caption id="mes_cd">Mes CD</caption>
    			<table>
    				<thead>
    					<tr>
    						<td>Artiste<span onclick=TableOrder(event,1)>&#9660;</span><span onclick=TableOrder(event,0)>&#9650;</span></td>
    						<td>Nom de l'album<span onclick=TableOrder(event,1)>&#9660;</span><span onclick=TableOrder(event,0)>&#9650;</span></td>
    						<td>D&acirc;te de sortie<span onclick=TableOrder(event,1)>&#9660;</span><span onclick=TableOrder(event,0)>&#9650;</span></td>
    					</tr>
    				</thead>
    					<tr class="cd_tab" onclick="document.location.href='cd01.html'">
    						<td>AC/DC</td>
    						<td>Back In Black</td>
    						<td>1980</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd02.html'">
    						<td>AC/DC</td>
    						<td>Backtracks</td>
    						<td>2009</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd03.html'">
    						<td>AC/DC</td>
    						<td>Black Ice</td>
    						<td>2008</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd04.html'">
    						<td>AC/DC</td>
    						<td>Highway To Hell</td>
    						<td>1979</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd05.html'">
    						<td>AC/DC</td>
    						<td>High Voltage</td>
    						<td>1976</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd06.html'">
    						<td>AC/DC</td>
    						<td>Live</td>
    						<td>1992</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd07.html'">
    						<td>AC/DC</td>
    						<td>The Razor's Edge</td>
    						<td>1990</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd08.html'">
    						<td>Aerosmith</td>
    						<td>Classics Live ! Complete</td>
    						<td>1987</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd09.html'">
    						<td>Aerosmith</td>
    						<td>Gold Disc</td>
    						<td>2005</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd10.html'">
    						<td>Aerosmith</td>
    						<td>Toys in the Attic</td>
    						<td>1975</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd11.html'">
    						<td>Arctic Monkeys</td>
    						<td>Favourite Worst Nightmare</td>
    						<td>2007</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd12.html'">
    						<td>Arctic Monkeys</td>
    						<td>Watever People Say I Am, That's What I'm Not</td>
    						<td>2006</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd13.html'">
    						<td>Chickenfoot</td>
    						<td>Chickenfoot</td>
    						<td>2009</td>
    					</tr>
    					<tr class="cd_tab" onclick="document.location.href='cd14.html'">
    						<td>Dionysos</td>
    						<td>Monsters In Love</td>
    						<td>2005</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd15.html'">
    						<td>Franz Ferdinand</td>
    						<td>You Could Have It So Much Better</td>
    						<td>2005</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd16.html'">
    						<td>Green Day</td>
    						<td>American Idiot</td>
    						<td>2004</td>
    					</tr>
      				    <tr class="cd_tab" onclick="document.location.href='cd17.html'">
    						<td>Good Morning England</td>
    						<td>Movie Soundtrack</td>
    						<td>2009</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd18.html'">
    						<td>Guns N' Roses</td>
    						<td>Appetite for Destruction</td>
    						<td>1987</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd19.html'">
    						<td>Guns N' Roses</td>
    						<td>Chinese Democracy</td>
    						<td>2008</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd20.html'">
    						<td>Guns N' Roses</td>
    						<td>Greatest Hits</td>
    						<td>2004</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd21.html'">
    						<td>Iron Maiden</td>
    						<td>Edward The Great : Greatest Hits</td>
    						<td>2005</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd22.html'">
    						<td>Joe Satriani</td>
    						<td>Satriani Live !</td>
    						<td>2006</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd23.html'">
    						<td>Joe Satriani</td>
    						<td>Professor Satchafunkilus and the Musterion of Rock</td>
    						<td>2008</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd24.html'">
    						<td>Led Zeppelin II</td>
    						<td>Led Zeppelin II</td>
    						<td>1969</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd25.html'">
    						<td>The Answer</td>
    						<td>Everyday Demons</td>
    						<td>2009</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd26.html'">
    						<td>The Jimi Hendrix Experience</td>
    						<td>Electric Ladyland</td>
    						<td>1968</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd27.html'">
    						<td>The Rolling Stones</td>
    						<td>Shine a Light - Original Soundtrack</td>
    						<td>2008</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd28.html'">
    						<td>The Strokes</td>
    						<td>First Impressions of Earth</td>
    						<td>2006</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd29.html'">
    						<td>The White Stripes</td>
    						<td>Icky Thump</td>
    						<td>2007</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd30.html'">
    						<td>U2</td>
    						<td>War</td>
    						<td>1983</td>
    					</tr>
        				<tr class="cd_tab" onclick="document.location.href='cd31.html'">
    						<td>ZZ Top</td>
    						<td>Afterburner</td>
    						<td>1985</td>
    					</tr>				
    			</table>
    		</div>
    	
    		<div id="pied_de_page">
    		<p> <a href="qui_suis-je.html> Qui suis-je </a> <a href="mailto:shigeru94@gmail.com"> Me contacter </a> <br/>
    		Code et Design par XXXX </p>
    		
    		</div>
    	</body>
    </html>
    


    J'aimerais obtenir une solution sans avoir à apprendre le Javascript. Je connait un peu de langage C (si cela peut servir ...)

    Un lien vers une solution me suffirais (pas la besoin de refaire tout le code ;) )
    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      26 août 2010 à 1:24:27

      On ne fait pas support des scripts foireux de codesource, pose ta question chez eux.
      • Partager sur Facebook
      • Partager sur Twitter

      Trie d'un tableau avec liens

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown