11543 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai voulu utiliser tablesorter pour une table d'un site. Après avoir fait un hello world en me basant sur les exemples du site, j'ai décidé de passer à la pratique et de l'intégrer sur le site...

Mais là, rien ne va :s

Voici la table :

<table class="tablesorter">
		<thead>
		<tr>
			<td></td><td>Echéance</td><td>Client</td><td>Titre</td><td>Sous-Titre</td><td>Status</td><td>Créateur</td><td></td>
		</tr>
		</thead>
		<tbody>
<?php
	for($i=0;$i<count($tasks);$i++) {
		$task = unserialize($tasks[$i]);
		echo $taskPrinter->printTdLineVisu($task);
	}
	
	if(count($tasks) == 0) {
?>
		<td rowspan="6">Aucune tâche assignée.</td>
<?php		
	}
?>
		</tbody>
	</table>


J'inclue bien les js (et le fichier css) :
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.js"></script>


Et je demande bien la "création" du tablesorter sur ma seule table de la page :

<script type="text/javascript">
		$(document).ready(function() { 
        		$("table").tablesorter({ 
        		// sort on the first column and third column, order asc 
        		sortList: [[0,0],[2,0]] 
   				});	 
		});
		</script>


Aurais-je oublié quelque chose?

J'utilise des objets PHP développé par un collègue.

Merci d'avance pour l'aide !
Modifié par jvervier (09 Feb 2012 - 17:06)
Salut,

Il me semble que le script se base sur des balises th pour le thead et non td. Si tu changes cela, est-ce que cela fonctionne mieux. Après sans le code de la page qui est renvoyé au navigateur difficile de trouver où est la cause du problème.

Est-ce que tu as les petites flèches pour le tri dans ton thead ? Sinon as-tu bien implémenter le CSS et les images ?

Xulu
J'oubliais aussi... je suis de nature distraite !

C'était bien les th qui manquaient. J'avais laissé les td dans le code initial !

Mille merci et... mille pardons aussi !
Hello,

Deux remarques:
1. Pour des en-têtes de colonne, on utiliser <th scope="col">...</th> pour indiquer la relation entre les cellules du tableau (utile notamment pour les lecteurs d'écran).
2. Pour des problèmes liés à JavaScript ou CSS, le code PHP ne nous est pas utile. La prochaine fois, donne plutôt le code HTML généré. Smiley cligne
Modifié par fvsch (08 Feb 2012 - 21:58)
Oups, je viens de voir que le sujet était résolu. Je vais créer un nouveau sujet.
Modérateur vous pouvez supprimer ce post, désolé.


Bonjour,

J'ai également un problème avec ce plugin jQuery "tablesorter". Smiley decu
J'ai créé un outil de recherche de lien de tracking qui sont stocké dans une base de données. ( en complément du l'outil de création de lien de tracking )
Selon la recherche effectuée, j'affiche les lignes de résultats.

Souhaitant afficher les résultats proprement et de pouvoir les trier, j'ai choisi ce plugin.
Le problème c'est que je n'ai pas les petites flèches qui me permettent de trier.

Voici le Javascript me permetant de récuperer les valeurs et d'afficher le tableau en ajax
$('#form-search').submit(function() {
		$("#resultsearch").empty(); // On vide la partie réservé au resultat
	
		var searchmedium = $('#ssupport').val();
		var searchsource = $('#ssource').attr('value');
		var searchterm = $('#sterm').attr('value');
		var searchcontent = $('#scontent').attr('value');
		var searchcampaign = $('#scampaign').attr('value');
		var dateinf = $('#dateinf').val();	// Date de diffusion
		var datesup = $('#datesup').val();	// Date de diffusion
		
		var request = $.ajax({
			url: "tracktosearch.php",
			type: "GET",
			data: {
				ssupport: searchmedium,
				ssource: searchsource,
				sterm: searchterm,
				scontent : searchcontent,
				scampaign : searchcampaign,
				dateinf : dateinf,
				datesup : datesup
			},
			success: function(html){
				$("#resultsearch").append(html); // On affiche le resultat de la recherche
			}
		});
		var dataurl = "tracktosearch.php?ssupport="+searchmedium+"&ssource="+searchsource+"&sterm="+searchterm+"&scontent="+searchcontent+"&scampaign="+searchcampaign;
		window.history.pushState("url", "recherche", dataurl);	// On passe les données en paramètres dans l'url

		return false;	// Pas de rechargement de page
	});


Voici le code php servant à afficher les données de ma base.

// MISE EN PLACE DU TABLEAU
//echo "<div id='resultsearch'>";
echo "<table id='tableurl' class='tablesorter'>";
echo	"<thead>";
echo		"<tr>";
echo			"<th>Date de diffusion</th>";
echo			"<th>URL complète</th>";
echo			"<th>Medium</th>";
echo			"<th>Source</th>";
echo			"<th>Term</th>";
echo			"<th>Content</th>";
echo			"<th>Campaign</th>";
echo			"<th>Rayon</th>";
echo			"<th>Fiche article</th>";
echo		"</tr>";
echo	"</thead>";
echo	"<tbody>";

					
// Affichage de la recherche
while($row = mysql_fetch_array($search)){											
	echo "<tr>";
	echo "<td>";
	echo $row['datediffusion'];
	echo "</td>";
	echo "<td>".$row['url']."</td>";
	echo "<td>".$row['medium']."</td>";
	echo "<td>".$row['source']."</td>";
	echo "<td>".$row['term']."</td>";
	echo "<td>".$row['content']."</td>";
	echo "<td>".$row['campaign']."</td>";
	echo "<td>".$row['rayon']."</td>";
	echo "<td>".$row['numfiche']."</td>";
	echo "</tr>";
}
echo "</tbody>";
echo "</table>";
//echo "</div>";


J'appelle bien les fichiers nécessaires au plugin.
J'appelle également le plugin.
<link type="text/css" href="css/tablesorter.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.js"></script>
$(document).ready(function(){
     // TableSorter
     $("#tableurl").tablesorter();
});


Puis voici ma div qui va recevoir mon tableau.
<div id="resultsearch"></div>


Voila, j'espère que vous saurez m'aider dans mon problème car là je ne vois pas comment faire et cela fait un bon moment que je bloque dessus après multitudes recherches.

Merci d'avance. upload/43657-pbutm.jpg
Modifié par anthoid (07 Mar 2012 - 16:25)