JavaScript

Résolu
monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. vincent170186 Messages postés 329 Statut Membre 52
     
    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
  2. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    Bonjour

    merci pour ta repense mais serait'il possible que tu me propose un code stp ?
    0
    1. vincent170186 Messages postés 329 Statut Membre 52
       
      tu sais appeler une librairie ? (je pense notament a jquery )
      0
    2. vincent170186 Messages postés 329 Statut Membre 52
       
      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
  3. maka54 Messages postés 721 Statut Membre 80
     
    il faudrait déjà séparer le javascript et le php

    ensuite comment tu supprimes ton élément ?? tu cliques sur un bouton ??
    0
  4. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. maka54 Messages postés 721 Statut Membre 80
     
    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
  7. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    C'est là même chose.
    Donc que je clic sur ok ou annuler, la requête de suppression s'exécute toujours
    0
    1. maka54 Messages postés 721 Statut Membre 80
       
      donne ton code
      0
  8. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    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
  9. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    Y a personne pour m'aider ?
    0
  10. maka54 Messages postés 721 Statut Membre 80
     
    <?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
  11. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    ok je m'y met tout de suite
    je te fais signe toute à l'heure
    Merci encore
    0
  12. monkaarnaud Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   1
     
    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