Pbm php/javascript

Fermé
loulou64 Messages postés 267 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 30 mars 2005 - 14 juil. 2004 à 21:15
loulou64 Messages postés 267 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 30 mars 2005 - 15 juil. 2004 à 19:40
Salut a tous!
J'ai un pbm pour creer un site:
j'affiche une base de donnees ds un tableau et, lorsque l'utilisteur clique sur un des noms du tableau, une fonction javascript (confsup) demande la confirmation de la suppression puis declanche une fct php (delete) pour supprimer l'entree de la base de donnee.
Helas ca ne fonctionne pas!

la fct consup est bien declanchee mais l'entree n'est pas supprimee de la base...Pourriez vous m aider? Merci d'avance!!
L'adresse pour visualiser est http://membres.lycos.fr/listebds

et voici le code:

<html>
<head>
<title>Liste des bds</title>


<!--DEBUT CODE COULEUR SUR LIENS-->
<style>
<!--
A:link {text-decoration: underline; color: #FFFF00; font-family: comic sans ms, Arial; font-size: 10pt}
A:visited {text-decoration: underline; color: #FFFF00; font-family: comic sans ms, Arial; font-size: 10pt}
A:active {text-decoration: underline; color: #FF0000; font-family: comic sans ms, Arial; font-size: 10pt}
-->
</style>
<!--FIN CODE COULEUR SUR LIENS-->


<!--DEBUT CODE ECLAIRAGE SUR LIEN-->
<style TYPE="text/css">
<!--
A:hover {text-decoration:none; background: #FFFF00}
A:hover {color:#0000FF;}
-->
</style>
<!--FIN CODE ECLAIRAGE SUR LIEN -->

<!--DEBUT CODE DE CONFIRMATION DE SUPPRESSION-->
<SCRIPT language='Javascript'>

function confsup($nomsupp) {

if (confirm('Etes-vous sur de vouloir supprimer la bd intitulée '+$nomsupp+' ? '))
{
<?php

delete($nomsupp);
?>
}



}
</SCRIPT>
<!--FIN CODE DE CONFIRMATION DE SUPPRESSION-->

</head>

<body bgcolor="0000FF">

<?php
function delete($nomsupp)
{
$db = mysql_connect();

$sql="DELETE FROM listebds WHERE (nombd='$nomsupp')";
mysql_query($sql, $db);
print "$nomsupp";
}
?>

<br>
<br>
<br>
<br>
<br>
<br>
<table align="center" cellspacing="0" cellpadding="0" border="1" width="80%" bgcolor="black" bordercolor="yellow">
<tr>
<td bgcolor="#0000FF" align=center><font color="#FFFF00">DATE</td>
<td bgcolor="#0000FF" align=center><font color="#FFFF00">NOM DE LA BD</td>
<td bgcolor="#0000FF" align=center><font color="#FFFF00">AUTEUR</td>
<td bgcolor="#0000FF" align=center><font color="#FFFF00">COMMENTAIRE</td>
</tr>

<?php
$db = mysql_connect();
$sql="SELECT * FROM listebds ORDER BY nombd";
$res=mysql_query($sql, $db);
while ($ligne = mysql_fetch_object ($res))
{
print "<tr>";
print "<td align=center> <font face=\"comic sans ms,arial\" size=3 color=\"yellow\">$ligne->date</font></td>";
print "<td align=center><a href=\"#\" OnClick=\"confsup('$ligne->nombd')\">$ligne->nombd</td>";
print "<td align=center><font face=\"comic sans ms,arial\" size=3 color=\"yellow\">$ligne->auteur</font></td>";
print "<td align=center><font face=\"comic sans ms,arial\" size=3 color=\"yellow\">$ligne->commentaire</font></td>";
print "</tr>";

}
mysql_free_result ($res);
?>
</table>
<br>
<br>
<br>
<br>
<br>
<br>
<div align=center>
<a href="ajout.html">Ajouter une bd à la liste</a>
</div>

</body>
</html>
A voir également:

2 réponses

grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
14 juil. 2004 à 21:34
Salut à toi,

Le problème, c'est que ta page est interprétée par PHP une seule fois, au moment de la génération de ta page HTML.
Du coup, dans ta fonction compsup, le delete est exécuté lors de la génération de ta page avec une variable non initialisée.

Pour faire ce que tu veux faire, tu dois appeler une nouvelle page dans cette fonction, du genre :
window.location=delete.php?id=$nomsup


Tu vois ce que je veux dire ?

michael

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
loulou64 Messages postés 267 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 30 mars 2005 9
14 juil. 2004 à 21:45
Salut et merci pour ta reponse rapide!

Je debure en php mais si j'ai bien compris, il faut que j'ecrive ma fonction de suppression ds un fichier a part delete.php et que je l'appelle ensuite ds ma fonction de confirmation? c bien ca ?
en tt cas je tente et je te tiens au courant ! merci encore !
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
14 juil. 2004 à 21:49
T'as tout compris.
Essaie et n'hésite pas à me faire signe si ça ne marche pas


Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
loulou64 Messages postés 267 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 30 mars 2005 9 > grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006
14 juil. 2004 à 22:43
Salut grofwa, c'est encore moi !
j'ai suivi tes conseils, tt a fonctionne ou presque, en fait ce qui est transmis a la fonction delete.php, ce n'est pas le nom de la bd a supprimer mais le nom de la variable.
Je pense que c'est juste une pbm de " ou de ', mais je n'arrive pas a le resoudre.

Je te colle la portion de code modifiee. merci encore !

function confsup($nomsupp) {

if (confirm('Etes-vous sur de vouloir supprimer la bd intitulée '+$nomsupp+' ? '))
{
window.location='delete.php?var=$nomsupp';
}

et ds delete.php:

<html>
<head>
</head>
<body>

<?php
$db = mysql_connect();
$sql="DELETE FROM listebds WHERE (nombd='$var')";
print "$var";
mysql_query($sql, $db);
?>
</body>
</html>

donc pour etre clair, lors du print "$var"; il m'affiche $nomsupp au lieu du nom de la bd (le contenu de $nomsupp)
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
15 juil. 2004 à 08:49
salut.

En javascript, il n'y a pas de $ devant les variables.
Un autre petit truc. Normalement, avec les nouvelles versions de PHP, dans ton script delete.php, tu devrais remplir ta variable $var comme ceci :
$var = $_GET['var'];

Sinon, ta variable risque d'être vide.

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
loulou64 Messages postés 267 Date d'inscription vendredi 21 mai 2004 Statut Membre Dernière intervention 30 mars 2005 9
15 juil. 2004 à 19:40
Salut!
tt fonctionne maintenant, il fallait en fait passer la variable de cette maniere window.location='delete.php?var='+nomsupp+'';
pour qu'il la reconnaisse en tant que variable
Merci encore pour ton aide !
@+
0