[PHP/MYSQL]recupération de données... [Résolu/Fermé]

Signaler
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
-
 darrouch -
bonjour,
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?

11 réponses

Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 485
Bonsoir,

Alors il faut recharger la page dans ce cas là (selon l'évènement que tu veux en Javascript)...

Si ton Formulaire a pour methode "post", tu poses une condition en php
if (isset($_POST['iduser']))
{
             Récupération du service dans la base de données...
}

Ca te permet de dire à la page => si j'ai reçu telle valeur via la methode post (en l'occurence, ta valeur iduser depuis ton formulaire) alors je vais récupérer des trucs dans la base de données, sinon j'affiche le formulaire comme d'habitude...

A la fin de la récupération, il faut encore recharger la page et envoyer la valeur de ton service vers ton formulaire.
Pour ça tu peux utiliser
document.location.replace("http://ta_page_actuelle?service=machin")


Puis dans le formulaire (sans oublier de poser une condition en début de page avec isset comme au dessus, pour savoir si le nom du service est là, sinon afficher le formulaire comme d'habitude):
<input type="text" name="service" value="$_GET['service']" 
(à retranscrire en php => echapper les guillemets etc...)

Voilà :-)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56915 internautes nous ont dit merci ce mois-ci

Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
1 >
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016

quelqu'un pourrait m'ader svp?

killian t mouru? 8-)
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 485 >
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016

Scuse j'ai pas beaucoup de temps. Je repasse ce soir ou demain :-)
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
1 >
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016

ok
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 fonction



ensuite 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?
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 485 >
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005

Pour le coup tu gardes quand même mon usine à gaz? :-)

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:
function search_service($iduser)


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']?
if (isset($_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 ....
if ($_POST['iduser'] == $iduser)

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...

} //fin SI n°2
    }//fin SI n°1
    return $msg_erreur;
  }//fin fonction

D'après ce que je lis ta fonction retournera toujours "Impossible d'afficher le nom du service!" :-)
 Call to undefined function: search_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)"
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 485 >
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016

Je verrais plus un truc du genre:
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...
Messages postés
10
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 février 2005
3
Bonjour

entre vos deux proposition pour son emplacement, les deux sont identiques, car la donction utilisé sert a définir l'id alors la definir par fonction ou dirrectement cela reviens au même mais il est evident que ce soit l'ID de vos utilisateur qui s'affiche car si je lis votre code je vois ceci :
document.formulaire.nomserv.value=document.formulaire.iduser.value;

d'apres une certaine logique il est evident que la valeur de iduser soit l'id de l'utilisateur. Si iduseur necorrespond pas à l'id alors je ne comprend pas votre script, il me faudrait voir ce fragment html qui affiche la liste et la zone de texte pour vous répondre.

Bonne continuation pour votre site.

Cordialement : Maxime
oué d'accord
je m'explique mieux:
ma liste déroulante est créer a partir de mon iduser pour récupérer le nom et le prénom de l'utilisateur.
mais je suis obligé de passer par cet iduser pour récupérer le service: dans ma table USERS j'ai une clé étrangère ID_DEST qui renvoie a la table de mes services.
j'ai essayé des requêtes SQl, d'autres moyens je ne sais plus trop lesquels et cela ne fonctionnait pas...
donc j'aimerais avoir l'explication ou un morceau de code si quelqu'un l'a fait pour récupérer une valeur à partir d'un ID mais dans mon cas (liste déroulante et affichage automatique)

Vous voyez ce que je vopudrais?

merci en tout cas de votre...

a bientot
LOL
je viens d'aller sur ton profil et je vois que tu es de dijon!!
ben moi je suis de beaune!lol
tu es dans quel lycée?
++
Messages postés
10
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
11 février 2005
3 > zeal21
Bonjour
Effectivement, expliqué de la sorte, je ne saurais vous aider, désolé de n'avoir pas compris dés la premiere fosi ce ue vous vouliez dire.

Pour ce qui est du lycée je me trouve a Eiffel a Dijon sinon j'habite a 80Km de Dijon

Encore dsl de ne savoir vous répondre
Yop !

Ce que tu veux faire c'est une usine à gaz ! :)
Il va falloir que ton script php te génere un tableau javascript du style :

service[id_utilisateur]=nom_du_service

Solution valide si 1 utilisateur = 1 service. Et uniquement si le but est de faire de l'affichage... C'est pas une solution très propre si tu dois reposter ton formulaire...

et que tu fasse une fonction javascript capable de récupérer ça...
(c'est en fait pas très compliqué, mais je te dirais pas comment on fait vu que je suis une quiche question js, et donc je fuis ce langage comme la peste)

Y'a deux défauts majeurs...
1) question confidentialité c'est très très (vraiment très très !) limite...
2) c'est acceptable si tu as une quinzaine d'utilisateurs, ça l'est beaucoup moins si tu en as 350...
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
1
ok
en fait voila c'est pas vraiment une session que je veux faire

je fait un intranet et je modifie des pages pour le service informatique
les utilisateur déclarent par l'intranet leur incident
donc je voudrais une sorte d'authentification mais sans mot de passe l'utilisateur choisit son nom dans une liste déroulante et son service s'affiche dans une zone de texte en dessous de cette liste.
cela me servira plus tard pour que dès qu'il déclare leur incident ils envoient un mail avec service nom....etc

le JS je connait très peu et j'ai plutôt 100 voire200 utilisateurs mais tous n'ont pas d'incidents!!
Puis chaque service comporte plusieurs utilisateurs!
puis j'ai déjà présenté le projet au responsable info et ca ne lui a pas posé de problèmes (comparé a moi.... :( ) donc cette solution lui ocnvient!!


voila pour les explications...

++
>
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005

Heu... juste un truc...

Meme si tous les utilisateurs n'ont pas d'incident, ils doivent tous être dans la liste, en cas de besoin, n'est ce pas ?

Du coup à chaque fois, l'utilisateur devra retourner chercher son nom dans une liste déroulante comptant 200 personnes ?

J'ai mal pour eux ! :)
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
1 >
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005

en fait nan

si l'utilisateur ne se trouve pas dans la liste il peut s'enregistrer
ok si tout le monde a des problèmes ca va etre lourd a chercher leur nom mais bon
pi tout le monde n'a pas de problèmes en info et ils ont le téléphone aussi!!

après ils font ce qu'ils veulent soit ils utilisent ma solution ou pas je m'en fout tant que j'ai un projet de stage!! :D

voila
Messages postés
28
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
15 juillet 2005
1
bonjour,

ce site est pour une entreprise où je suis en stage
cxe matin la responsable info a vu le travail que j'ai fait, je lui expliqué pour certains problèmes.

et pour ce formulaire, pour cet affichage automatique elle m'a conseillé de mettre une liste déroulante qui était mieux, c'était + homogène par rapport au reste du site....

donc j'abandonne cette solution

En tout cas MERCI BEAUCOUPde votre aide et de votre générosité, de perdre du temps pour un newbie ;-) c'est vachement sympa ;-)

a bientôt...
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 485
Bonne chance :-)
Messages postés
9
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
4 novembre 2006

Bonjour,

Je suis entrain de créer un formulaire "liste déroulante pour des produits lié avec mysql.

Je souhiate faire parraitre sur la meme page le prix et la réference du produit sélectioné :

<?php
//on se connecte à la base de donnée
$SQL = mysql_connect('localhost','root','') or die ("erreur de connexion");print ("Connexion réussie.");

//on selectionne votre base
mysql_select_db('lcompresseurs',$SQL) or die ("erreur de connexion base");

$result=mysql_query("SELECT Ref,Compresseur,Prix,Design FROM dixair");
mysql_close();
?>

<p>Veuillez choisir votre compresseur :</p>

<SELECT NAME="compresseur">
<?
while($val=mysql_fetch_array($result))
{
echo "<OPTION VALUE='".$val["Compresseur"]."'>".$val["Compresseur"]."</option>";
}
?>
</SELECT>
<input type="submit" value="Vérifier le prix" />

Jusque la tout fonctionne ma liste est reprise de mysql mais je n'arrive pas a affiché un résultat quand la personne choisi le produit.

Pouvez vous m'aider ?????

Merci
avoir plus info
script php gestion de panier SVP
salut tous le monde
je veux m'identifier ,et quand j entre mon login et mon mot de passe me repond avec une erreur c'est qu'ils sont faux ,alors qu 'ils sont enregistrées dans une table sur ma base de données mysql,c quoi le probléme
c urgent
mon script est en PHP
et je travail avec easyphp
Et moi qui pensais que c'était un problème de récupération de données... Tant pis.
Salut
je fait un site il y a une identification la page marche losrque qu'on rentre l'identifient et le code mais ensuite j'ai un formulaire et je voudrai que dans une liste déroulente on mette que les élément appartent a la personne qui c'est identifier
voila et merci de me repondre ou de me dire si c possible ou nn lol
vous devez les mettre dans un java script