Partage
  • Partager sur Facebook
  • Partager sur Twitter

onclick dans une balise a

confirm () : Annuler ne marche pas

Sujet résolu
    24 mars 2011 à 11:34:38

    Bonjour, j'ai ce bout de code :

    <?php
    $retour = $bdd->query('SELECT * FROM news ORDER BY id_news DESC');
    while ($donnees=$retour-> fetch(PDO::FETCH_ASSOC)) // On fait une boucle pour lister les news
    {
    ?>
    
    <tr>
    <td><?php echo '<a href="admin_rediger_news.php?modifier_news=' . $donnees['id_news'] . '" >'; ?>Modifier</a></td>
    <td><?php echo '<a href="admin_liste_news.php?supprimer_news=' . $donnees['id_news'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo date($donnees['date_news']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news
    ?>
    


    <?php 
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
       
        $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    	$delete_news = $bdd->prepare("DELETE FROM news WHERE id_news=:supprimer_news");
    		
    		$delete_news->execute(array(
    			'supprimer_news'=> $_GET['supprimer_news']
    		));
    		
    }
    


    Donc pour le moment je n'ai aucune demande de confirmation si je clique sur "supprimer". J'aimerais qu'une boite de dialogue s'ouvre.
    Après avoir chercher sur internet j'ai fait ceci (oui je n'y connais rien en javascript) :

    onClick= "if (confirm('Voulez vous vraiment supprimer ? '))
    { return true; }
    else { return false; }
    } ">
    


    Malheureusement ca ne marche pas. Ca doit être parce que ma balise <a> est dans du php?

    Donc ma question est : comment ouvrir une boite de dialogue lorsque je clique sur la balise <a> supprimer?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2011 à 11:56:17

      Est-ce que tu peux montrer ta balise <a> généré? (sur ta page, clique droit -> voir/afficher la source de la page) car là avec le PHP au milieu je ne sais pas trop ce que tu as vraiment fait (je soupçonne un mauvais retour à la ligne)

      Et non ce n'a rien à voir avec le PHP car le javascript est exécuté côté client donc la manière dont la page a été générée n'intervint pas.
      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2011 à 12:04:50

        Ba en fait j'ai un parse error sur la ligne donc rien de généré :euh:
        Et comme la syntaxe javascript je ne la connais presque pas... j'ai du mal.

        <td><?php echo '<a href="admin_rediger_news.php?modifier_news=' . $donnees['id_news'] . '" onClick= "if (confirm('Voulez vous vraiment supprimer ? '))
        { return true; }
        else { return false; }
        } ">'; ?>Modifier</a></td>
        


        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2011 à 12:48:50

          C'est donc que tu as un problème de PHP pas de javascript:
          <td><?php echo '<a href="admin_rediger_news.php?modifier_news=' . $donnees['id_news'] . '" onClick= "if (confirm(\'Voulez vous vraiment supprimer ? \')){ return true; }else { return false; }} ">'; ?>Modifier</a></td>
          


          Quand tu utilises un éditeur avec la coloration syntaxique, regardes la couleur ça peut parfois aider (ici par exemple tu peux voir qu'il faut échapper les ').
          • Partager sur Facebook
          • Partager sur Twitter
            24 mars 2011 à 13:56:44

            merci. Donc plus d'erreur mais ca ne marche pas. La news se supprime sans message.

            Faut-il placer quelque chose d'autre sur la page ? une balise <script> ou quelque chose comme ca ?

            Code source généré :
            <td><a href="admin_liste_news.php?supprimer_news=5" onClick= "if (confirm('Voulez vous vraiment supprimer ? ')){ return true; }else { return false; }} "
            >Supprimer</a></td>
            


            edit : J'ai la boite de dialogue qui s'affiche avec ce code :

            <td><?php echo '<a href="admin_rediger_news.php?modifier_news=' . $donnees['id_news'] . '" >'; ?>Modifier</a></td>
            <td><?php echo '<a href="admin_liste_news.php?supprimer_news=' . $donnees['id_news'] . '" onClick= "ConfirmMessage()"
            >'; ?>Supprimer</a></td>
            <td><?php echo stripslashes($donnees['titre']); ?></td>
            <td><?php echo date($donnees['date_news']); ?></td>
            </tr>
            <?php
            } // Fin de la boucle qui liste les news
            ?>
            </table>
            
            <SCRIPT language=javascript>
               function ConfirmMessage() {
                   if (confirm("Voulez vous vraiment supprimer ? "))
            	   { return true;  }
            	   else { return false; }}
            
            	   </SCRIPT>
            


            Mais dans tous les cas ca supprime. Alors comment faire interagir le javascript avec mon code php, afin que ma requête ne s'exécute pas quand je clique sur "Annuler" ??
            • Partager sur Facebook
            • Partager sur Twitter
              24 mars 2011 à 16:33:00

              je viens de voir dans ton code généré (le premier code que tu indiques dans ton précédent message): tu as une accolade } en trop à la fin (du coup ça doit faire planter l'interpréteur javascript)


              Dans ton 2e code il faut que tu fasses: <a href="..." onclick="return ConfirmMessage();"> Il faut mettre un return


              Et d'une manière générale ne mets pas de majuscule aux attributs (onclick et non onClick).
              • Partager sur Facebook
              • Partager sur Twitter

              onclick dans une balise a

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown