Page 1 sur 1

javascript+php

Posté : 03 juil. 2009, 17:58
par Superpilou
Bonjour.

Je souhaite faire une suppression d'un fichier en cliquant dessus.
J'ai alors décidé de mélanger du php et du javascript.
En gros j'utilise le javascript pour cliquer sur le lien et demander avec une confirm() si le fichier doit être supprimé.
Si oui normalement je veux faire appel au php pour supprimer le fichier.
Sinon non ca fait rien de spe.

Le soucis c'est que je n'arrive pas à intégrer les deux en même temps.

Posté : 03 juil. 2009, 22:17
par sadeq
voici une idée, d'un algorithme:

formulaire html/javascript:

Code : Tout sélectionner

1. sélectionner le ficher à supprimer 2. cliquer sur le lien "supprimer" 3. javascript demande la confirmation ? si confirmé : envoyer l'ordre de suppression à php sinon rien.
php:

si un ordre de suppression est reçu depuis le formulaire html et si le nom du fichier à supprimer est joint, alors:

Code : Tout sélectionner

1. vérifier si le fichier à supprimer existe bien 1.1. si le fichier n'existe pas alors retourner le message "Fichier inexistant" + arrêt 1.2. sinon, si le fichier existe alors le supprimer 1.2.1. si la suppression est effectuée, alors retourner le message "Fichier supprimé" + arrêt 1.2.2. sinon, si la suppression n'est pas réalisée, retourner le message "Fichier non supprimé" + arrêt
Et voici, un essai de codage :
<script>
function confirmerSuppression(){
	return confirm('Etes-vous sûr de vouloir supprimer?');
}
</script>
<form onsubmit="return confirmerSuppression();">
<p><input type="checkbox" name="fichier" value="fichier1.txt" /> Fichier1.txt</p>
<p><input type="checkbox" name="fichier" value="fichier2.txt" /> Fichier2.txt</p>
<p><input type="checkbox" name="fichier" value="fichier3.txt" /> Fichier3.txt</p>
<p><input type="submit" name="supprimer" value="Supprimer"  /></p>
</form>

<?php
//// si un ordre de suppression est reçu depuis le formulaire html 
//// et si le nom du fichier à supprimer est joint, alors faire le traitement
if (isset($_GET['supprimer']) && isset($_GET['fichier'])){
     // 1. vérifier si le fichier à supprimer existe 
     // 1.1. si le fichier n'existe pas alors retourner le message "Fichier inexistant" + arrêt
     if (! file_exists($_GET['fichier'])){
             echo 'Fichier inexistant !';
     }
     else {
           // 1.2. sinon, si le fichier existe alors le supprimer
           if (chmod($_GET['fichier'], 0777) && unlink($_GET['fichier'])){
                // 1.2.1. si la suppression est effectuée, alors retourner le message "Fichier supprimé" + arrêt
                echo 'Fichier supprimé.';
           }
          else {
                 // 1.2.2. sinon, si la suppression n'est pas réalisée, retourner le message "Fichier non supprimé" + arrêt
                echo 'Fichier non supprimé !';
           }
     }
}
//// fin du programme
?> 

Posté : 07 juil. 2009, 16:41
par Superpilou
Merci pour la réponse.
Cependant j'ai une nouvelle contrainte.
Il faut cliquer sur un lien supprimer et le fichier sélectionné doit être supprimé en cliquant sur le lien.
J'ai réussi à le faire avec un formulaire et un bouton submit mais pas avec un lien.

Posté : 08 juil. 2009, 15:15
par sadeq
Pour utiliser un lien hypertexte pour la suppression, il faut que chaque fichier en ait un. Car il faut joindre le nom du fichier à supprimer dans l'url HREF du lien hypertexte. Et en même temps, si tu veux utiliser des liens, tu n'as plus besoin du formulaire ni du bouton submit. Car un lien communique directement avec une page cible et si cette page contient un script PHP qui traite des paramètres reçus par GET, le lien peut en profiter en lui envoyant les paramètres attendus par un ? dans l'url du HREF.

Explication par l'exemple:

page1.html:

Code : Tout sélectionner

<a href="page2.php?param1=coucou" >Appel de page2 en lui envoyant un paramètre</a>
page2.php:
<?php
   /// reçoit et affiche le paramètre "param1"
  if (isset($_GET['param1'])) {
         echo '<p>La page1 a envoyé le paramètre : ',  $_GET['param1'], '</p>';
  }
  else { echo '<p>Rien reçu!</p>'; }
?>
Remarque: Dans un lien hypertexte <a></a>, les paramètres qui peuvent exister dans l'URL qui se trouve dans l'attribut HREF, sont toujours envoyés par la méthode GET.
Et quand il s'agit d'envoyer plusieurs paramètres dans un lien hypertexte via l'URL, la syntaxe générale est :
?param1=valeur1&param2=valeur2&param3=valeur3...