Requête SQL sur clic d'image HTML ? (via js?)
Powerplex
Messages postés
2
Statut
Membre
-
tryan44 Messages postés 1289 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis confronté à un léger problème que j'aimerai résoudre pour mieux comprendre la façon dont les langages communiquent.
EXPLICATION :
- Mon programme PHP affiche une série de touites(un twitter maison) publiés par un utilisateur connecté à une session.
-Lorsque que mon utilisateur est connécté, un bouton (balise d'image html) apparaît sur chaque touite et devrait lui permettre de le supprimer de la base de données.
- J'ai donc pensé à utiliser Onclick dans la balise pour éxécuter la supression, mais je ne peut pas y insérer de PHP et encore moins de requête (je passe par PDO).
MON CODE :
DONC DONC DONC...
Je bloque complètement ! Je pensais utiliser du javascript pour appelez une page php à la manière d'un include, php qui exécuterais une requête paramétrée en fonction de deux variables récupérées sur le clic de l'image : le $pseudo et le "texteTouites". Ces deux éléments me suffiraient pour faire mon DELETE dans la base.
A l'aide >< Je bloque :p
Je suis confronté à un léger problème que j'aimerai résoudre pour mieux comprendre la façon dont les langages communiquent.
EXPLICATION :
- Mon programme PHP affiche une série de touites(un twitter maison) publiés par un utilisateur connecté à une session.
-Lorsque que mon utilisateur est connécté, un bouton (balise d'image html) apparaît sur chaque touite et devrait lui permettre de le supprimer de la base de données.
- J'ai donc pensé à utiliser Onclick dans la balise pour éxécuter la supression, mais je ne peut pas y insérer de PHP et encore moins de requête (je passe par PDO).
MON CODE :
$pseudo = $_SESSION['user'];
$listetouite=$pdo->query("SELECT * FROM touites WHERE touitesNomCompte = '$pseudo' ORDER BY dateCreationTouite ASC");
$listetouite->setFetchMode(PDO::FETCH_OBJ);
echo $pseudo.',voici vos touites persos.';
<div id="touitesrecents">
<?php
echo '<h2>--- VOS TOUITES RECENTS ---</h2>';
while( $ligne = $listetouite->fetch() ) //affichage des touites récents ligne par ligne.
{
?><div class="touite"><?php
echo '- Le '.$ligne->dateCreationTouite.',<b>vous avez dit: </b>"<i>'.$ligne->texteTouites.'</i>"
<img class="logodelete" src="images/delete.png" alt="" onclick=""/>
?></div><?php
}
?>
</div> <!--fin d'affichage des touites récents-->
$listetouite->closeCursor();
DONC DONC DONC...
Je bloque complètement ! Je pensais utiliser du javascript pour appelez une page php à la manière d'un include, php qui exécuterais une requête paramétrée en fonction de deux variables récupérées sur le clic de l'image : le $pseudo et le "texteTouites". Ces deux éléments me suffiraient pour faire mon DELETE dans la base.
A l'aide >< Je bloque :p
3 réponses
-
Salut,
Je pense qu'il faut passer par Ajax.
Sur la balise image qui récupère le pseudo + tweete, il faut ajouter sur le onclick une fonction Ajax. Cette fonction permettra d'envoyer les données collectées en GET ou en POST à un simple fichier PHP qui supprimera les données. -
Merci beaucoup :p
Je suis grand débutant par contre j'utilise jQuery déjà mais je n'ai jamais utilisé les fonctions ajax ><
Je vais enquêter ! -
Dans les grosses ligne (je débute en ajax :)) ça devrait donner un truc du style :
<script> function sup(pseudo,message) { var xhr; try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e2) { try { xhr = new XMLHttpRequest(); } catch (e3) { xhr = false; } } } xhr.onreadystatechange = function() { if(xhr.status == 404){ alert('Erreur ' +xhr.status); } }; xhr.open( "GET", "mon-fichier.php?pseudo="+pseudo+"&message="+message , true); xhr.send(null); } </script><a onclick="sup('toto','message 1')"><img src="logo.png"/></a> <a onclick="sup('titi','message 2')"><img src="logo.png"/></a>
Au "onclick" la fonction "sup()" est déclenché. Le pseudo + message sont envoyés par la méthode "GET" au fichier "mon-fichier.php". Le fichier "mon-fichier.php" récupère les infos et traite les données comme un simple fichier PHP.
Après "xhr.onreadystatechange = function() {", vous pouvez lancer d'autres fonctions en ajoutant simplement :if(xhr.readyState == 4 && xhr.status == 200){ //ici d'autres fonctions }
Par contre avec cette méthode, il faudra certainement faire un refresh du côté utilisateur pour que le message supprimé apparaisse bien comme étant supprimé.