|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Bonjour,
j'ai adapté un script de news sur un site. Celui-ci les crée en .txt (date + numéro au hasard) et les affiche mais ne pouvait pas les effacer. J'essaye de créer un script permettant de les sélectionner puis de les effacer. J'utilise du javascript pour ce faire. Je voudrais créer une variable tableau se remplissant au fur et à mesure que les cases sont cochées puis lorsqu'on appuie sur effacer, lire le tableau et effacer les .txt correspondant aux news sélectionnées. Une petite idée? Merci. Ci-dessous le code de la page concernée... Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() eric Étudiant Inscription : décembre 2010 Messages : 103 ![]() |
Salut , je te propose le code suivant, je ne sais pas si c'est exactement ce dont tu as besoin, mais c'est ce que j'ai compris que tu voulais faire.
Code :
Note que je charge seulement les fichiers qui ont une extension .new pour plus de sécurité Si tu veux faire une suppression sans recharger la page, tu peux faire une requête AJAX en GET ou en POST. Je te conseille alors de te tourner vers JQuery qui permet de faire une requête très soimplement ex : $.get('delete.php?file=monfichier.new',callback); cela va executer une requete vers le serveur, et le callback est une fonction annonyme qui sera exécutée lorsque la réponse du serveur est reçue. tu peux alors supprimer la ligne du tableau dans cette fonction. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Pas bête...
... bien que j'eus préféré un appel de fonctions JS pour pouvoir effacer d'un coup celles qui sont sélectionnées car j'apprends le javascript en ce moment. Si qqun a une idée de fonction... Je vais essayer d'intégrer une fonction jquery comme tu me l'as décrite... |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() eric Étudiant Inscription : décembre 2010 Messages : 103 ![]() |
RE ,
je ne sais pas trop ce que tu as tenté avec ta fonction, mais avec cette ligne ca marche mieux Code :
echo "<tr class='fontactu'><form action='delete.php'><input type='hidden' name='delete' value='".$value."' /><td align='left' style='width:10%;'><input type='submit' value='X' onclick=\"return confirm('$newsTitle')\"></td><th align='left'>$newsTitle</th><td align='right'>$submitDate</td></tr>"; //echo $file; |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Re,
J'ai intégré un appel jquery de cette façon : Code :
echo '<tr><td>'.$news.'</td><td>'. substr(file_get_contents('news/'.$news),0,50).'...</td><td><form $.get("delete.php?file=monfichier.txt",callback);><input type="hidden"name="delete" value="'.$news.'" /><input type="submit" value="X" onclick="return confirm(\'supprimer '.$news.' ?\')"></form></td></tr>'; Je vais maintenant essayer de créer la page delete.php . A+ et merci! |
|
|
00
|
|
|
#6 | ||||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Bon je pense que ça ne pouvait pas fonctionner car je n'avais pas installé les librairies jquery (je débute en javascript...). Ceci étant fait, je me retrouve avec la page suivante :
Code :
Code :
![]() Bonne journée |
||||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() eric Étudiant Inscription : décembre 2010 Messages : 103 ![]() |
re bonjour,
Pour commencer, sache que apprendre le JS c'est cool et ca permet plein de choses, mais savoir comment l'utiliser c'est mieux. Dans ton cas, tu veux manipuler des fichiers, or JS ne permet pas de le faire .Pour des raisons de sécurité, étant donné que ce code s'exécute sur la machine client, si JS pouvait manipuler les fichiers, on aurait de sérieux problèmes sur un paquet de sites... pour delete.php, c'est un traitement coté serveur que tu dois effectuer. il s'agit de supprimer le fichier .new que le formulaire décrit. On récupère donc le nom du fichier que l'on doit supprimer au travers de la variable globale $_POST qui est remplie avec une information étant donné que c'est un formulaire qui à généré la requête HTTP vers delete.php Donc, dans l'idée, tu récupères le nom du fichier dans POST tu vérifies que c'est bien un nom qui finit par .new et que c'est pas une adresse du type '../../../../../fichier' qui ferait que ca peut supprimer un fichier à la racine de ton serveur. ensuite, tu appelles la fonction unlink de php pour supprimer le fichier du serveur. Comme à ce stade tu n'as pas fait de output , tu peux modifier le header de ta réponse HTTP, c'est à dire ce que va retourner delete.php, pour faire une redirection avec une instruction du type header('location:index.php'); qui aura pour effet après avoir supprimé ton fichier de te refiriger vers ta page d'origine. Ni vu ni connu, tu as supprimé un fichier, ton gestionnaire de news est rappellé avec un fichier en moins, il n'apparaîtra donc pas dans le tableau.Et la boucle est bouclée. |
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Merci pour ta réponse.
J'ai tenté de créer le fichier delete.php qui suit mais ça ne marche toujours pas. Et là, je ne vois vraiment pas d'où vient l'erreur. Sans doute de la fonction jquery dans actualites_eff.php posté plus haut... Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 14 ![]() |
Hello,
Bon j'ai finalement réussi, sans appel JQuery ou ajax. Merci pour ton aide Utopman et à bientôt! Bonne journée. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com