Insertion PHP dans une variable JS

Résolu
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -  
barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite mettre une confirmation JS avec comme valeur une variable PHP mais ça me renvoi vers la première entrée de ma table et non vers celle demandée.
Je vous remercie de votre aide.

function confirmation(id)
{ 
var id = parseInt('<?php echo htmlspecialchars($donnees['id']);?>');
if (confirm("Voulez-vous vraiment supprimer le billet:\n\n " + " " + "<?php echo htmlspecialchars($donnees['titre']);?>"+ " ?" )) window.location.href = "supprime_billet.inc.php?id="+id;
}


Évidemment en dehors du JS le PHP fonctionne bien.

2 réponses

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Il faudrait plutôt renseigner les informations du billet lors de l'appel de la fonction confirmation en paramètres plutôt que de les saisir directement dans la fonction, sinon il faudrait créer une fonction par billet...

    Par exemple lors de l'affichage des tes billets :
    <!-- Bouton de suppression -->
    <button onclick="confirmation(<?php echo htmlspecialchars($donnees['id']);?>, <?php echo htmlspecialchars($donnees['titre']);?>)">Supprimer</button>
    


    et la fonction javascript :
    function confirmation(id, titre) { 
        if (confirm("Voulez-vous vraiment supprimer le billet:\n\n " + titre + " ?")) 
      window.location.href = "supprime_billet.inc.php?id="+id;
    }
    


    Bonne journée
    0
    1. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
       
      En cliquant sur le bouton, cela ne faite rien.
      0
    2. tirando
       
      Par contre vous pouvez faire ça:

      _écrire la valeur avec PHP dans un élément HTML
      <p id='titre'><?php
       htmlspecialchars($donnees['titre']);
      ?>
      <p id='id'><?php
       htmlspecialchars($donnees['id']);
      ?>
      </p>
      Une fois écrit dans la page on peut récupérer le contenu des balises avec javascript:
      
      <button onclick="confirmation(document.getElementById('id').innerHTML,document.getElementById('id').innerHTML);">Supprimer</button>
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > tirando
         
        oulaaa.
        Mettre le même ID à plusieurs endroits.... et vouloir s'en servir dans le javascript ???..... ça ne fonctionnera jamais !

        La solution de Pitet est la bonne....
        Il a juste oublié de mettre des quotes autour de sa variable "Texte".

        Un truc du genre :
        <button onclick="confirmation(<?php echo htmlspecialchars($donnees['id']);?>, '<?php echo htmlspecialchars($donnees['titre']);?>')">Supprimer</button>
        


        Si ça ne fonctionne toujours pas, jettes dont un oeil dans la Console de ton navigateur voir si il y a des erreurs.
        (je t'invite à utiliser la console du plugin FireBug pour le navigateur FireFox).
        0
  2. barale61 Messages postés 1126 Date d'inscription   Statut Membre Dernière intervention   113
     
    Merci beaucoup ça marche comme ça. Je ne peux plus installer firebug sur FireFox Aurora et j'ai fait un post à ce sujet: https://forums.commentcamarche.net/forum/affich-32821961-firebug-plus-compatible#p32821961
    0