Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2007, 12h23   #1
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Par défaut Enregistrement suivant après validation

Bonjour,

J'ai une page où sont affichées des informations d'un dossier client provenant de ma bdd. Grâce à un petit formulaire, je valide ces informations (champs statut = 'validé' est alors mis a jour dans la bdd).
Je voudrais qu'après la validation, la page se réactualise en affichant le prochain dossier client qui n'as pas encore été validé.
Après maintes recherches, je n'arrive pas a réaliser ce que je veux.
Mes recherche se sont portées sur le positionnement à l'enregistrement suivant dans la bdd.

Est-ce que quelqu'un peut m'aider ?
Merci d'avance ?
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 14h24   #2
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

Voici comment je m'y prendrais :

- Juste après la validation du dossier, lancer une requete SQL pour recupérer l'identifiant du prochain dossier en attente de validation. Tu peux alors construire l'URL pour accéder au dossier suivant :
Code :
$url="http://www.monsite.com/mon_formulaire.php?id=".$id_du_dossier_suivant;
- Utiliser la fonction header() pour rediriger la page vers cette url :
Code :
1
2
header("location:".$url);
exit();
- Si aucun nouveau dossier n'est trouvé, alors afficher un message ou bien rediriger vers la liste des dossiers validés.

Voilà, j'espère que ça pourra t'aiguiller un peu !

A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 15h52   #3
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Oui tu as raison, ça a l'air de fonctionner. Mais en fait mon problème est au niveau de l'accession à l'enregistrement suivant puisqu'il me faudrait un bouton 'suivant' qui me permettrait d'afficher le prochain dossier si je ne veux pas valider celui qui est en cours.
C'est plutôt ça en fait qui me pose problème.
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 18h05   #4
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Rien de plus simple !
Il te suffit de récupérer l'identifiant du dossier suivant et de faire un lien sur ta page :

Code :
<a href="<?php echo $url; ?>">Suivant</a>
A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 10h40   #5
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Quand je décide de valider un dossier, la page se réactualise. Au début de cette page je refait une requête qui me permet de sélectionner le dossier suivant non-validé :
Code :
$sql = "SELECT * FROM patient WHERE validation='' ORDER BY id";
Voici le problème : disons que j'ai 5 dossiers (les dossiers n°2,n°3,n°5 sont déjà validés)
j'arrive sur la page de validation des dossiers. Si je décide de ne pas valider le dossier n°1, je clique sur le bouton 'suivant' qui effectue :
Code :
1
2
3
4
5
6
7
8
include("Include/connexion.php");
$query = "SELECT * FROM patient WHERE validation='' ORDER BY id_patient";
$r = mysql_query($query);
$a=mysql_fetch_object($r);
$num=$a->num_dossier;
include("Include/deconnexion.php");	
$num_suivant = $num + 1; 
echo "<script>location.href='index.php?page=validation/details_validation_suivant&id=$num_suivant'</script>";
En cliquant sur le bouton suivant, le dossier qui devrait s'afficher est le dossier n°4 puisque les dossiers n°2 et n°3 sont déjà validés.
Dans mon cas le dossier suivant qui s'affiche est le dossier n°2, ce qui ne va pas.
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 12h13   #6
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

Pour récupérer le dossier à valider, mieux vaut utiliser son identifiant, c'est plus sur et ca t'évitera d'avoir ce probleme. Tu peux passer l'identifiant par l'URL et le récupérer avec la méthode $_GET.

Ex :
URL de la page :

Code :
1
2
3
4
5
6
7
8
9
if(isset($_GET['id']) AND !empty($_GET['id']) {
 $sql = "SELECT * FROM patient WHERE id_patient='".$_GET['id'];
 ....
 /*on récupere les informations sur le patient*/
}
else {
 /* erreur : pas d'identifiant*/
 echo "Aucun dossier n'a été trouvé";
}
Maintenant, pour récupérer le prochain dossier à valider, tu choisis dans la liste des dossiers, le 2ème :

Code :
1
2
$sql_suivant = "SELECT id_patient FROM patient WHERE validation='' ORDER BY id_patient LIMIT 1,1"; 
// LIMIT permet de récupérer 1 dossier à partir de l'enregistrement 1 (ca commence a 0)
Tu obtiens ainsi l'identifiant du dossier suivant et tu peux créer ton url.

A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 18h10   #7
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Merci, ca fonctionne correctement. J'ai effectué plusieur tests et ca a l'air de fonctionner.
Voici la requête que j'ai utilisée :
Code :
$sql = "SELECT * FROM patient WHERE (validation='' AND id_patient>='$id') ORDER BY id_patient LIMIT 1,1";
Du coup j'ai décidé de faire un bouton 'Précédent', ce qui devrait être quasiment la même chose. Le problème c'est que quand je clique sur précédent, c'et toujours le même dossier qui s'affiche (le deuxième dossier de la liste c'est-à-dire le dossier n°4)
Voici la requête pour le bouton 'Précédent' :
Code :
$sql = "SELECT * FROM patient WHERE (validation='' AND id_patient<='$id') ORDER BY id_patient LIMIT 1,1";
Peux-tu m'aider ?
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2007, 22h17   #8
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Quelqu'un peut m'aider ? Je pense que le problème vient de LIMIT 1,1 mais je ne sais pas comment résoudre ce problème.
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 12h17   #9
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

Il ne faut pas oublier qu'avec SQL tu peux classer les résultats en ordre croissant ou décroissant :

Code :
1
2
ORDER BY id_patient ASC
ORDER BY id_patient DESC
Ca devrait t'aider à résoudre ton problème avec le bouton précédent !

A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 14h50   #10
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Merci beaucoup, j'avais oublié le ASC et le DESC. Ca a l'air de fonctionner pour les boutons suivant et précédent.
Par contre quand je clique sur dossier suivant, un affichage se produit en haut de ma page (ne s'affiche pas en faisant précédent) :
Les 3 caractères affichés sont : 
Je ne vois pas d'où cela provient ? As-tu une idée ? Il me semble que je n'avais pas ça avant, même quand le bouton suivant fonctionnait.
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 16h21   #11
Membre à l'essai
 
Avatar de bogsy15
 
Inscription : mai 2006
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 147
Points : 24
Points : 24
Je pense avoir trouvé, c'est un probleme d'encodage des fichiers.
En tout cas merci pour le reste.
bogsy15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h27.


 
 
 
 
Partenaires

Hébergement Web