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

Signaler
Messages postés
25
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
Messages postés
25
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
24 octobre 2005
-
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

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
25
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
24 octobre 2005

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