11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous, alors voilà je suis entrain de réaliser un panneau d'administration pour un site à l'aide de jQuery, cependant j'ai un problème lors de l'utilisation de la fonction .load(), elle n'affiche pas le contenue de "action.php".

Mon panneau d'administrateur me permet de modifier ou supprimer un article, j'ai alors créé un tableau de 4 colonnes qui affiche dans la première colonne l'id des articles, dans la deuxième le titre, dans la 3 ème le lien "supprimer" qui est un $("td a"), et dans la 4 ème le lien "modifier" qui est aussi un $("td a").

script.js

$("td a").click( function(){
	document.location = "azerty.php?lid="+$(this).parent().parent().children().eq(0).html()+"$laction="+$(this).html();

	$("div#action").load( 'action.php',
	{
		lid: $(this).parent().parent().children().eq(0).html() ;
		laction: $(this).html() ;
	});
});


azerty.php : (mon panneau d'administrateur)

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>zoomoun.fr</title>
<link rel="stylesheet" media="screen" href="style.css">
<meta name="description" content="zoomoun">
</head>
<body>

<div id="global">
<div id="entete"><a href="index.php"><img src="img/logo.png" /></a></div>
<div id="principal">
<div id="gauche">
<?php
	include('menu.php');
?>
</div>
<div id="droite">
<?php
	include('droite.php');
?>
</div>
<div id="centre">
<h4>Panneau d'administration</h4>
<?php

$host = "localhost";
$user = "root";
$passwd = "root";
$con_serv = mysql_connect($host,$user,$passwd);
$con_bdd = mysql_select_db("test2");

mysql_query("SET NAMES UTF8"); 
$req = mysql_query("SELECT * FROM article");

echo'<table>';
while( $ligne = mysql_fetch_row($req) ){
	
	$id = $ligne[0];
	$titre = $ligne[1] ;
	$texte = $ligne[2] ;
	$date = $ligne[3] ;
	$img1 = $ligne[4] ;
	$img2 = $ligne[5] ;
	$img2 = $ligne[6] ;
	
	echo'<tr><td>'.$id.'</td><td>'.$titre.'</td><td><a href="#">supprimer</a></td><td><a href="#">modifier</a></td></tr>';
}
echo'</table>';
echo'<div id="action"></div>';


?>

</div>
<div id="clear"></div>
</div>
<?php
	include('copyright.php');
?>
</div>
</div>
<script src="jquery.js"></script>
<!-- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> -->
<script src="script.js"></script>
</body>
</html>


action.php :

<?php
echo'action lancer';
?>

Modifié par tonymx15 (07 Sep 2010 - 23:31)
Salut,

Ça ne peut pas marcher puisque sur ton action click() tu appelles un document.location en premier lieu. Donc la page courante est remplacée par azerty.php et aucune autre action ne s'exécute.

Autant remplacer ton document.location par la fonction load() de jQuery (du coup pas de rechargement complet de la page), et faire un include dans azerty.php du fichier action.php…

Et j'ai pas compris non plus ce que tu voulais faire dans ton appel du load ?

lid: $(this).parent().parent().children().eq(0).html() ; 
laction: $(this).html() ;


À savoir qu'il suffit juste de faire ça pour insérer le contenu de la page action.php dans ton div #action :

$("div#action").load( 'action.php');

(pour l'exemple je ne met pas de structure de contrôle, mais c'est recommandé pour éviter d'éventuels chargements échoués)
Merci je vais regarder et essayer ce que tu m'a dis, je t'est fais un screen de l'écran pour que tu comprennes mieux ce que je veux faire.

http://img709.imageshack.us/img709/6061/capturedcran20100908125.png

En faites, je veux que l'orsque je clique sur "Modifier" ou "Supprimer", ça m'ajoute des paramettres dans l'url, l'id de l'article que je veux modifier ou supprimer. Puis je veux ensuite que ça me charge sous le tableau dans un div#action la page "action.php" sans chargement...

ZeB_panam a écrit :

Et j'ai pas compris non plus ce que tu voulais faire dans ton appel du load ?

lid: $(this).parent().parent().children().eq(0).html() ; 
laction: $(this).html() ;



En faites lid est l'id de l'article, laction représente "Modifier" ou "Supprimer"... Puis je veux les passés en paramètres donc c'est pour ça que j'ai écris cela.
Modifié par tonymx15 (08 Sep 2010 - 13:08)