Problème d'intégration PHP Javascript dans une boite de dialogue

2swfan Messages postés 25 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 24 octobre 2005 - 10 mai 2005 à 15:34
2swfan Messages postés 25 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 24 octobre 2005 - 11 mai 2005 à 08:53
Bonjour tout le monde !

Voila, g un probleme d'integration entre du php et du javascript. en fait, je veux afficher une boite de dialogue qui demande à l'utilisateur si il ve ou non supprimer une carte ( une image). Si il clique sur oui, la carte est supprimee de la base, sinon, il revient sur le detail de la carte.

Pour cela, j'utilise une boite de dialogue de type confirm et je met dans une variable javascript le resultat de la confirmation ( true ou false). Selon ce resultat, le systeme fait le traitement (en PHP) . Le probleme majeur de ce truc, c'est que si je met du code PHP à l'interieur de mon javascript, la boite de dialogue ne ve plus s'afficher. De plus, le systeme rentre dans les deux possibilités du "if".

Ci joint le code source de ce que g code pour l'instant ( ca marche po, la boite de dialogue ne ve pas s'afficher !! ). Merci d'avance de votre aide.

$conn = connexion(USER, PASS, HOST);
if ($conn == false) {
echo "Impossible de se connecter à la BDD : \n";
}
$choix_base = choix_base(BDD);
if ($choix_base == false) {
echo "Erreur dans le choix de la base de donnees\n";
}
?>
<script language = "javascript">
function confirmation() {
var conn = "<? echo $conn; ?>";
var carte = "<? echo $idcarte; ?>";
if (confirm ("Voulez vous vraiment supprimer cette carte ?? ")) {
return true;
}else
{
document.write("<meta http-equiv="REFRESH" content="0;url=detail_carte.php?idcarte="+carte+""></HEAD>");
return false;
}
}


var test = confirmation();
if (test) {
</script>
<? $req "delete from carte where idcarte $idcarte";
//$curs = execute($conn, $req);
echo "<fieldset>\n";
echo "<legend>Suppression de la carte : ";
echo $idcarte."</legend>

\n";
if ($curs) {
echo "<center>La carte a été correctement supprimée</center>";
}else {
echo "<center>Il y a eu un problème lors de la suppression de la carte !!</center>";
}
echo "
";
echo "</fieldset>";
?>
<script>
}else {
document.write("test 2 ");
}
</script>
<?
?>

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mai 2005 à 16:33
Hello,



PHP s'execute cote serveur.

Javascript s'execute cote client.

En d'autres termes :

PHP s'est execute avant que Javascript n'est commence a s'executer.



Ce qui est normal...

Le serveur lit ton php, le parse, et cree a partir de lui un fichier
HTML...il renvoie ce fichier a ton navigateur qui va lire le html et
eventuellement donc le javascript s'il en contient.



Donc, un if () en javascript contenant du php ne peut pas fonctionner. PHP a deja ete execute, totalement.

Ce que tu veux faire est impossible de cette maniere. Il faut passer
par des formulaires, des pages, une session...si l'on veut passer des
variables crees par javascript a php.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 mai 2005 à 20:53
Salut,



au passage, prends l'habitude de commencer tes scripts par <?php et de passer ton code HTML au XHTML ;-)



Tu peux aussi utiliser les simples quotes pour faire plus propre dans tes echo



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
2swfan Messages postés 25 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 24 octobre 2005
11 mai 2005 à 08:53
Merci de vos réponses.

En fait, g reussi a resoudre mon probleme en faisant comme ca :

// confirmation_suppression.php :

$conn = connexion(USER, PASS, HOST);
if ($conn == false) {
echo "Impossible de se connecter à la BDD : \n";
}
$choix_base = choix_base(BDD);
if ($choix_base == false) {
echo "Erreur dans le choix de la base de donnees\n";
}
?>
<script language = "javascript">
var conn = "<? echo $conn; ?>";
var carte = "<? echo $idcarte; ?>";
if (confirm ("Voulez vous vraiment supprimer cette carte ?? ")) {
document.write("<meta http-equiv="REFRESH" content="0;url=confirmation_suppr_acceptee.php?idcarte="+carte+""></HEAD>");
}else
{
document.write("<meta http-equiv="REFRESH" content="0;url=detail_carte.php?idcarte="+carte+""></HEAD>");
}
</script>

// confirmation_suppr_acceptee.php :

$idcarte = $HTTP_GET_VARS['idcarte'];


$conn = connexion(USER, PASS, HOST);
if ($conn == false) {
echo "Impossible de se connecter à la BDD : \n";
}
$choix_base = choix_base(BDD);
if ($choix_base == false) {
echo "Erreur dans le choix de la base de donnees\n";
}


$req "delete from carte where num_carte '$idcarte'";
echo $req;
$curs = execute($conn, $req);
echo "<fieldset>\n";
echo "<legend>Suppression de la carte : ";
echo $idcarte."</legend>

\n";
if ($curs) {
// suppression systeme de la carte
$req = "select distinct chemin_carte
from carte
where num_carte = '$idcarte'";
$curs= execute($conn, $req);
$row = mysql_fetch_array($curs);
$chemin = "\\\\Sntquimper3\".$row['chemin_carte'];

if ($curs) {

La carte a été correctement supprimée dans la BDD </center>";
}else
{
echo "<center>La carte n'a pas été correctement supprimée dans la BDDr</center>";
}

echo "
";
echo "</fieldset>";



Merci de vos réponses !

2swfans
0
Rejoignez-nous