je fais un site en php/mysql
j'ai créé un formulaire où j'ai une liste déroulante comportant mes utilisateurs et une zone texte correspondant au service auquel appartient c utilisateurs.
lorsque je choisis un utilisateur, THÉORIQUEMENT ,le nom du service s'affiche automatiquement.
cependant, c'est l'ID de l'utilisateur qui s'affiche.
je sais qu'il faut que je fasse une requête pour récupérer cette valeur mais je ne sais pas où le mettre.
ICI
function set_service() {
document.formulaire.nomserv.value=document.formulaire.iduser.value;
}
ou dans la value de ma zone texte?

mais j'ai essayé des trucs mais ca marche pas...
voila:
j'ai créer une fonction search_service(recherche du service)
cependant je ne sais pas si elle est juste...je vous la donne et vous pourrez me dire si el vous paraît juste ou fausse...
function search_service($iduser){ $msg_erreur = "Impossible d'afficher le nom du service!"; if (isset($_POST['iduser'])){ if ($_POST['iduser'] == $iduser){ $nomserv = $db->query_Read_Database("SELECT ID_DEST, LIB_DEST FROM destinataires d, users u WHERE u.ID_DEST=s.ID_DEST AND ID_USER='$iduser'"); } //fin SI n°2 }//fin SI n°1 return $msg_erreur; }//fin fonctionensuite ce que j'ai fait est faux ou je l'emploi mal.
j'appelle ma fonction lorsque je change une donnée dans ma liste déroulante donc avec un "onchange".
mais j'ai une erreur
Citation :
<select name="iduser" onchange="
Fatal error: Call to undefined function: search_service() in e:\www\fr\Informatique\auth_user.php on line 56
donc je pense c'est parce que le php ne peut pas être interprété c'est ca?
mais pour la méthode que je fait, le mieux serait que je mette cette fonction dans une page a part?ou pas?
A toi de voir entre les différentes solutions....
En tout cas si tu gardes la mienne, et si tu gardes ta fonction:
_ Est ce que tu l'utilises bien après soumission du formulaire et rechargement de la page?
Si c'est bien le cas:
Tu entre quoi comme paramètre quand tu l'utilises?
Tu écris search_service($_POST['iduser'])?
En ce cas pourquoi le recomparer par la suite à $_POST['iduser']?
Si tu as entré $_POST['iduser'] comme paramètre de ta fonction ça ne sert plus à rien de vérifier si elle existe, l'erreur se sera déclarée avant ....
Je ne pense pas que $_POST['iduser'] sera déclarée comme variable globale dans ta fonction mais c'est à vérifier... Si le tableau $_POST peut être utilisé comme variable locale dans une fonction alors elle sera locale (c'est à dire une variable utilisée uniquement dans ta fonction qui n'aura rien à voir avec le vrai $_POST)
$nomserv = $db->query_Read_Database("SELECT ID_DEST, LIB_DEST FROM destinataires d, users u WHERE u.ID_DEST=s.ID_DEST AND ID_USER='$iduser'");Pour tester ta requête, rien ne vaut un echo avec le contenu de ta requête (en tant que simple chaine) que tu peux ensuite tester dans ta base plus directement ...
Si j'ai bien compris, $db est l'instanciation d'une classe déclarée avant ta fonction? Alors idem, $db est sûrement considéré comme une variable locale et non comme le véritable objet utilisé dans ton programme principal...
D'après ce que je lis ta fonction retournera toujours "Impossible d'afficher le nom du service!" :-)
Visiblement tu utilises ta fonction sans l'avoir préalablement déclarée. Dans ton code tu dois sûrement te retrouver avec
"search_service($truc)" qui se situe avant "function search_service($iduser)"
if (isset ($_POST['iduser'])) { $iduser=$_POST['iduser']; requête :-) Traitement des données etc... }Que tu peux bien evidemment retranscrire en fonction si tu veux...