JavaScript

Résolu/Fermé
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 - 24 août 2010 à 20:12
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 - 27 août 2010 à 16:30
Bonjour,


J'ai un problème avec la fonction confirm() du JavaScript. Le message s'affiche bien mais sauf que je clic sur OK ou annuler; la requête de suppression s'affiche toujours.

Voici mon code:


echo"<SCRIPT language='Javascript'>
var confirmation=confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?');
</SCRIPT>";
if (confirmation==true) {
if ((isset($_GET['ID_HE'])) && ($_GET['ID_HE'] != "")) {
$delete = "DELETE FROM heures WHERE ID_HE='".$_GET['ID_HE']."'";
if($Result = mysql_query($delete, $connect_db) OR DIE(mysql_error())) {
echo"<SCRIPT language='Javascript'>
alert('L heure a bien ete supprimée!');
top.location = 'Heures.php';
</SCRIPT>"
;exit();
}
}
}
else {
echo"<SCRIPT language='Javascript'>
alert('Annulation de la suppression !');
top.location = 'Heures.php';
</SCRIPT>"
;exit();

Mon souhait est que tout soit sur une même page de la même façon que j'ai pu gérer les Controls d'intégrité(ajout, suppression ainsi que les messages de confirmation sur les opérations) sur d'autres pages.

Dans l'attente d'une suite favorable, je vous en remercie et que le bon Dieu vous bénisse.

11 réponses

vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 52
25 août 2010 à 12:13
salut

bon j'ai pas la reponse mais...

dans:
echo"<SCRIPT language='Javascript'>
var confirmation=confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?');
</SCRIPT>";
if (confirmation==true) { ...

confirmation et en dehors du script , en gros ya du javascript dans le php !

si tu veux faire une requete du suppression en passant par du js , il te faudra de l'ajax ! le php et coté serveur , donc il ne peut pas faire une requete une fois que ta page et afficher (cote client) d'ou l'ajax pour envoyer vers une autre page qui s'occuperas de delete sans besoin de recharger la page sur l'aquelle tu est...

voila !

0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
25 août 2010 à 12:22
Bonjour

merci pour ta repense mais serait'il possible que tu me propose un code stp ?
0
vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 52
25 août 2010 à 14:04
tu sais appeler une librairie ? (je pense notament a jquery )
0
vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 52
25 août 2010 à 14:20
pour le js ça donnerais un truc du genre (avec jquery)

var confirmation=confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?');

if (confirmation==true)
{
$.ajax({
type: "POST",
url: "lefichier.php",
data: "ID_HE=<? $_GET['ID_HE']?>",
success: function(msg){
alert( msg );
window.location=Heures.php;
}
});

}

et dans "lefichier.php"

if ((isset($_POST['ID_HE'])) && ($_POST['ID_HE'] != "")) {
$delete = "DELETE FROM heures WHERE ID_HE='".$_POST['ID_HE']."'";
if($Result = mysql_query($delete, $connect_db) OR DIE(mysql_error())) {
echo"L heure a bien ete supprimée!"}

je garantie pas que ça marcheras du premier coups ! mais c'est un truc dans le genre !
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
25 août 2010 à 14:07
il faudrait déjà séparer le javascript et le php

ensuite comment tu supprimes ton élément ?? tu cliques sur un bouton ??
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
25 août 2010 à 14:19
Bonjour

Pour répondre à la question de maka54
J'ai une page qui affiche les heures (se trouvant dans une bd mysql) et depuis cette page, je clique sur le bouton supprimer et le fichier exécute la requête de suppression ainsi qu'un message de confirmation du genre que l'élément est supprimé.
Mais mon problème est que je souhaite qu'un message de confirmation s'affiche avant l'exécution de la requête de suppression et si l'utilisateur clic sur OK, la requête s'exécute sinon un message d'annulation de la suppression s'affiche.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
25 août 2010 à 14:35
ton javascript avec une belle fonction ajax ^^

<SCRIPT language='Javascript'>


function getXhr(){
	var xhr=null;
	if(window.XMLHttpRequest){ //test pour navigateur mozilla
		xhr = new XMLHttpRequest();
	}else{
		if(window.ActiveXObject){ //test pour ie
			try{
				xhr = new ActiveXObject("Msxm12.XMLHTTP");
			}
			catch (e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}else{ //XMLHttpRequest non supporté
			alert("Votre navigateur ne supporte pas les objets XMLHttpRequest");
			xhr = false;
		}
	}
	return xhr;
}



function suppression(id){
    if(confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?')){
         	var xhr = getXhr(); //on récupère l'objet XMLHttpRequest
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){ // on attend la fin de transmission
				
                             if(xhr.responseText == "ok"){
                            document.getElementById(id).display = 'none';
                            alert("ton element a bien été supprimé");
                            }

			}
		}
		var url = 'suppression.php';
		xhr.open("POST",url,true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send('ID_HE='+id);
    }
}
</SCRIPT>


ta page où tu as tout tes truc a supprimer

<span id="...">
...................ce que tu veux afficher..............
+ ton bouton de supression
<input type="button" value="supprimer" onclick="suppression(id);">
</span>

l'id du span doit etre unique et correspondre au meme que dans ta fonction javascript a la ligne :

document.getElementById(id).display = 'none';


ensuite dans suppression .php

<?php 
if ((isset($_POST['ID_HE'])) && ($_POST['ID_HE'] != "")) {
$delete = "DELETE FROM heures WHERE ID_HE='".$_POST['ID_HE']."'";
$Result = mysql_query($delete, $connect_db) OR DIE(mysql_error()));

if($Result){
    echo "ok";
}
?>



avec ce principe, tu n'as meme pas besoin d'appeler une nouvelle page
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
25 août 2010 à 16:02
C'est là même chose.
Donc que je clic sur ok ou annuler, la requête de suppression s'exécute toujours
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
25 août 2010 à 16:23
donne ton code
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
26 août 2010 à 12:01
Ok voici tout mon code (le fichier Heure.php):*


<?php
require_once ('../Acces/connect_db.php');

if (($_SESSION["nom"] == '') OR ($_SESSION["prenom"] == '')) {
echo"<SCRIPT language='Javascript'>
alert('Veillez vous authentifiez !');
top.location = '../index.php';
</SCRIPT>"
;exit();
}

$query_heures= "SELECT * FROM heures ORDER BY ID_HE";
$heures = mysql_query($query_heures, $connect_db) or die(mysql_error());
$row_heures = mysql_fetch_assoc($heures);
$totalRows_heures = mysql_num_rows($heures);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Heures</title>
<SCRIPT language='Javascript'>
function getXhr(){
var xhr=null;
if(window.XMLHttpRequest){ //test pour navigateur mozilla
xhr = new XMLHttpRequest();
}else{
if(window.ActiveXObject){ //test pour ie
try{
xhr = new ActiveXObject("Msxm12.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{ //XMLHttpRequest non supporté
alert("Votre navigateur ne supporte pas les objets XMLHttpRequest");
xhr = false;
}
}
return xhr;
}

function suppression(id){
if(confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?')){
var xhr = getXhr(); //on récupère l'objet XMLHttpRequest
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){ // on attend la fin de transmission
if(xhr.responseText == "ok"){
document.getElementById(id).display = 'none';
alert("ton element a bien été supprimé");
}
}
}
var url = 'suppression.php';
xhr.open("POST",url,true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send('ID_HE='+id);
}
}
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#ffffff">
<table width="70%" border="0" cellpadding="1" align="center">
<tr>
<td colspan="2" align="center"><img src="../Images/UAHB.gif" width="790" border=1 bordercolor="#E2E2EC" height="150"></td>
</tr>
<tr>
<th align="left" colspan="">
Nom: <? echo $_SESSION['prenom']; ?> <? echo $_SESSION['nom']; ?>
       
Profil: <? echo $_SESSION['type']; ?>
</th>
<td align="right"><a href="../Acces/deconnect_db.php"><img border="0" src="../Images/logout.png" alt="Deconnexion" bgcolor="#FFFFFF"></a></font></b></td>
</tr>
<tr><th colspan="2"> </th></tr>
<tr<th colspan="2">LISTE DES HEURES DE COURS</th></tr>
<tr><th colspan="2"> </th></tr>
<tr><td colspan="2"> </td></tr>
<tr bgcolor="#888888">
<th scope="col">HEURES</th>
<td colspan="2"> </td>
</tr>
<?php do { if ($totalRows_heures > 0) {?>
<tr bgcolor='#EFEFFF'>
<td align="left">
<a href="../Heures/Modifier.php?ID_HE=<?php echo $row_heures['ID_HE']; ?>">
<?php echo $row_heures['Heure_HE']; ?>
</a>
</td>
<td align="right">
 <a href="../Heures/Supprimer.php?ID_HE=<?php echo $row_heures['ID_HE']; ?>"><img border="0" src="../Images/delete2.png" alt="Supprimer <?php echo $row_heures['Heure_HE']; ?> !"></a>
</tr>
<?php } } while ($row_heures = mysql_fetch_assoc($heures)); ?>
<tr><td colspan="2"> </td></tr>
<tr><td colspan="2"> </td></tr>
<tr>
<td colspan="2" align="right">
<a href="../Heures/Ajout.php"><img border="0" src="../Images/Icones/Plus.png" alt="Nouvelle heure"></a>
  <a href="../acceuil.php"><img border="0" src="../Images/Icones/left.gif" alt="Retour"></a></td>
</td>
<tr>
<tr><td colspan="2"> </td></tr>
<tr><td colspan="2" align="center"><img border="0" src="../Images/bas.gif" width="100%" bordercolor="#E2E2EC" height="20"><br>
<h6>Copyright © 2010, Webmaster Arnaud MONKA. Tous droits reservés.</h6></td></tr>
</table>
</body>
</html>
<?php
mysql_free_result($heures);
?>
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
27 août 2010 à 13:45
Y a personne pour m'aider ?
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 27/08/2010 à 15:23
<?php 
require_once ('../Acces/connect_db.php'); 

if (($_SESSION["nom"] == '') OR ($_SESSION["prenom"] == '')) { 
echo"<SCRIPT language='Javascript'> 
alert('Veillez vous authentifiez !'); 
top.location = '../index.php'; 
</SCRIPT>" 
;exit(); 
} 

$query_heures= "SELECT * FROM heures ORDER BY ID_HE"; 
$heures = mysql_query($query_heures, $connect_db) or die(mysql_error()); 





?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Heures</title> 
<SCRIPT language='Javascript'> 
function getXhr(){ 
var xhr=null; 
if(window.XMLHttpRequest){ //test pour navigateur mozilla 
xhr = new XMLHttpRequest(); 
}else{ 
if(window.ActiveXObject){ //test pour ie 
try{ 
xhr = new ActiveXObject("Msxm12.XMLHTTP"); 
} 
catch (e) { 
xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
}else{ //XMLHttpRequest non supporté 
alert("Votre navigateur ne supporte pas les objets XMLHttpRequest"); 
xhr = false; 
} 
} 
return xhr; 
} 

function suppression(id){ 

if(confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?')){ 
var xhr = getXhr(); //on récupère l'objet XMLHttpRequest 
xhr.onreadystatechange = function(){ 
if(xhr.readyState == 4 && xhr.status == 200){ // on attend la fin de transmission 
if(xhr.responseText == "ok"){ 
document.getElementById(id).style.display = 'none'; 
alert("ton element a bien été supprimé"); 
} 
} 
} 
var url = '../Heures/Supprimer.php'; 
xhr.open("POST",url,true); 
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
xhr.send('ID_HE='+id); 
} 
} 
</SCRIPT> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 

<body bgcolor="#ffffff"> 
<table width="70%" border="0" cellpadding="1" align="center"> 
<tr> 
<td colspan="2" align="center"><img src="../Images/UAHB.gif" width="790" border=1 bordercolor="#E2E2EC" height="150"></td> 
</tr> 
<tr> 
<th align="left" colspan=""> 
Nom: <? echo $_SESSION['prenom']; ?> <? echo $_SESSION['nom']; ?> 
        
Profil: <? echo $_SESSION['type']; ?> 
</th> 
<td align="right"><a href="../Acces/deconnect_db.php"><img border="0" src="../Images/logout.png" alt="Deconnexion" bgcolor="#FFFFFF"></a></font></b></td> 
</tr> 
<tr><th colspan="2"> </th></tr> 
</table><ul style="width:70%;margin:auto;"> 
 <li style="padding:0;margin:0;"> 
  <span style="float:left;"> 
      HEURES
  </span> 
  <span style="float:right;"> 
 
  </span> 

<?php while($row_heures = @mysql_fetch_array($heures)){ 

echo ' 
 <li style="padding:0;margin:0;" id="element_'.$row_heures['ID_HE'].'"> 
  <span style="float:left;"> 
   <a href="../Heures/Modifier.php?ID_HE='.$row_heures['ID_HE'].'">'.$row_heures['Heure_HE'].'</a> 
  </span> 
  <span style="float:right;"> 
   <a href="javascript:void(0);" onclick="suppression(\'element_'.$row_heures['ID_HE'].'\');"><img border="0" src="../Images/delete2.png"  style="border:0;" alt="Supprimer'.$row_heures['Heure_HE'].'!"></a> 
  </span> 
  </li>'; 

 } ?> 
  </ul>
<table width="70%" border="0" cellpadding="1" align="center"> 
<tr><td colspan="2"> </td></tr> 
<tr><td colspan="2"> </td></tr> 
<tr> 
<td colspan="2" align="right"> 
<a href="../Heures/Ajout.php"><img border="0" src="../Images/Icones/Plus.png" alt="Nouvelle heure"></a> 
  <a href="../acceuil.php"><img border="0" src="../Images/Icones/left.gif" alt="Retour"></a></td> 
</td> 
<tr> 
<tr><td colspan="2"> </td></tr> 
<tr><td colspan="2" align="center"><img border="0" src="../Images/bas.gif" width="100%" bordercolor="#E2E2EC" height="20"><br> 
<h6>Copyright © 2010, Webmaster Arnaud MONKA. Tous droits reservés.</h6></td></tr> 
</table> 
</body> 
</html> 
<?php 
mysql_free_result($heures); 
?>


Voilà une esquisse d'un code qui marche, a toi de corriger les eventuels choses qui ne concordent pas a ton cas, j'ai remplacé ton tableau par une liste accompagné d'un ID qui sont utilisés pour l'AJAX, d'ailleurs, je suis pas sur que tu est compris son fonctionnement, regarde un peu ce code aux endroits que j'ai modifié et si tu as des questions, demande moi
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
27 août 2010 à 15:37
ok je m'y met tout de suite
je te fais signe toute à l'heure
Merci encore
0
monkaarnaud Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 11 octobre 2011 1
27 août 2010 à 16:30
Bonjour

Je viens de résoudre le problème
il suffisait juste d'ajouter ce bout de code dans mon fichier Heures.php qui fait appel au fichier Supprimer.php (entre <head> et </head>)

<script type="text/javascript">
function suppression(){
if(confirm('Etes-vous sûr(e) de vouloir supprimer cet élément ?')){
document.location.href='Supprimer.php?ID_HE=<?php echo $row_heures['ID_HE']; ?>';
}else{
document.location.href='Heures.php';
}
}
</script>

Merci comme même pour ton aide Mr maka54
0