|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Bonjour à tous,
Dans une page que j'appelerai ici main.php, j'ai créé un tableau de contacts qui récupère les données dans une base mysql. Au début de chaque ligne, j'ai créé des cases à cocher qui me permettent de cocher les enregistrements que je veux supprimer et donc un bouton "supprimer" qui va avec. ça donne ça : Code :
Code :
Mon problème est le suivant : j'utilise la pagination dans ma page main.php donc au lieu de revenir sur la première page de contacts quand j'ai validé ma suppression, je souhaiterais revenir sur la dernière page affichée avant de cliquer sur "supprimer". J'ai essayé window.history.go(-1), mais comme c'est le cache qui est utilisé, la dernière page est réaffichée avec les enregistrements que j'ai effacés. Je souhaiterai résoudre mon problème avec php en récupérant l'url de la page précédente mais comme mon formulaire utilise la méthode "POST", je n'ai pas d'idée. Merci pour votre aide... |
||||
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 794 ![]() |
Salut,
si tu passes ta limite de début dans l'url pour ta pagination, tu peux la repasser en GET sur chaque page. Dans ton main.php, tu la passes dans le form en GET : Code :
Code :
Bye |
||||
|
|
00
|
|
|
#3 | ||||
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Salut Djak,
Comme d'habitude, merci pour ta promptitude ! J'ai effectivement suivi tes conseils me doutant que le JS n'était pas la meilleure solution ici. Je récupère bien l'url de la dernière page main.php avec ta méthode : Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 794 ![]() |
Est-ce que tu envoies du texte au navigateur avant ton header ou bien le code de effacer.php est exactement celui que tu as mis ?
D'autre part attention si tu fais ca sans test : <form method="post" name="suppression" action="effacer.php?debut=<?php echo $_GET['debut']; ?>"> tu vas avoir une erreur sur certains serveurs (ca dépend de la config), d'ailleurs si tu travailles en local (pas sur un site public en ligne), tu peux chercher cette ligne (dans le php.ini): error_reporting = E_ALL et t'assurer qu'il y a bien E_ALL, pour afficher toutes les erreurs et notices de script, c'est pratique pour le debug, en local. Je dis ca parce que normalement si le problème vient du header tu devrais avoir une erreur d'affichée ^^ idem pour echo $_GET['debut'] sur la page 0 de la pagination, si $_GET['debut'] n'est pas définie. tu dois également mettre display_errors à on : display_errors = On; dans le php.ini si tu veux afficher les erreurs |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Le code du fichier effacer.php est tel quel.
Effectivement, les tests, je les fais en ligne donc je n'ai pas accès au fichier php.ini de mon hébergeur. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 794 ![]() |
lol ^^
|
|
|
00
|
|
|
#7 | ||
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
hi Djak,
Si tu te marres, c'est mauvais signe ! Je ne comprends pas pourquoi le header ne fonctionne pas dans ce cas !!?? Même lorsque je fais simplement ça : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 794 ![]() |
Ton code marchait avant la modif ?
Vérifie que tu n'as pas de caractères avant la première balise <?php (même un espace ou un saut de ligne) C'est dur de debugger sans les codes d'erreurs ^^ [edit]En fait pour debugger t'aurais meilleur temps de développer tes scripts en local ^^ mais tu peux quand même utiliser : ini_set("errors_reporting", E_ALL); ini_set("display_errors", "1"); au début de ton script, pour modifier les param du php.ini, uniquement pour le script en cours. ou encore si t'es sous Apache mettre ca : php_value errors_reporting 2047 php_value display_errors "1" dans un fichier .htaccess dans le même répertoire que ton script. Sinon, si ton hébergeur à tout bloqué c'est qu'en théorie il redirige les erreurs vers un fichier de log que tu dois pouvoir consulter en ftp [/edit] |
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Merci Djak. Je vais suivre tes conseils à la lettre.
Je te tiens au courant. |
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Je n'ai pas répondu à ta question. Mon code fonctionnait bien avant la modif mais en utilisant JS.
Et si je remplace le JS par un header, celui-ci n'est pas interprété et je n'ai donc pas de retour vers ma page main.php |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 794 ![]() |
Ok, donc le problème vient sûrement du fait que du texte est envoyé au navigateur avant le header.
|
|
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 92 ![]() |
Mon cher Djak, une fois de plus tu as fait mouche !
Le problème se situait au niveau des caractères avant la première balise. Pour une raison de lisibilité, tout le code était décalé. En ré-alignant le code sur la gauche, tout est ok. Je ne savais pas que cela pouvait pertuber le fonctionnement de la fonction "header", alors que ça ne gênait pas lorsque j'utilisais JS. Ceci dit, je garde tes infos pour le debuggage du code, qui sont fort intéressantes. Merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com