creaDB
Messages postés28Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention25 mars 2009
-
25 févr. 2009 à 12:37
creaDB
Messages postés28Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention25 mars 2009
-
27 févr. 2009 à 11:21
Bonjour tout le monde je poste le code en 1er lieu :
Séléctionnez le patient à contacter :
</td>
<td>
<select size="5" style="width:400px" name="liste_patient">
<?php $sql = mysql_query("SELECT nom,nom_jf,prenom,mail FROM $table_patients ORDER BY nom ASC");
if (mysql_num_rows($sql) > 0)
{
while ($res = mysql_fetch_array($sql))
{
echo '<option>';
Voilà, le problème viens de $res["mail"] je pense que le code est faux vu que je ne récupère pas la valeur mail de la table patient si qq à une petite idée je suis preneur
MERCI !!!!!
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 25 févr. 2009 à 15:30
oh ok on n'avais pas compris !!!
donc effectivement ton <?php echo .$res["mail"]; ?> ne sert a rien :)
il faut soit passer par ajax soit simplement avec javascript et donc executer ta fonction JS ou AJAX avec onchange="mafonction()" au niveau de la balise select :
exemple de fonction JS :
<script type="text/javascript">
function getEmail(pMail){
document.getElementById('email').value = pMail;
}
</script>
Et modifier ton code comme ceci :
Séléctionnez le patient à contacter :
</td>
<td>
<select size="5" style="width:400px" name="liste_patient" onchange="getEmail(this.value)">
<?php $sql = mysql_query("SELECT nom,nom_jf,prenom,mail FROM $table_patients ORDER BY nom ASC");
if (mysql_num_rows($sql) > 0)
{
while ($res = mysql_fetch_array($sql))
{
echo '<option value=".$res["mail"].">';
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 25 févr. 2009 à 13:23
Arf, ok je vois le probleme !
tu ferme ta boucle while avant de faire echo $res["mail"]; , du coup $res n'existe pas !
Essaie avec sa :
Séléctionnez le patient à contacter :
</td>
<td>
<select size="5" style="width:400px" name="liste_patient">
<?php $sql = mysql_query("SELECT nom,nom_jf,prenom,mail FROM $table_patients ORDER BY nom ASC");
if (mysql_num_rows($sql) > 0)
{
while ($res = mysql_fetch_array($sql))
{
echo '<option>';
cs_canibale
Messages postés33Date d'inscriptionmardi 23 mai 2006StatutMembreDernière intervention28 février 2009 25 févr. 2009 à 13:33
Bonjour,
Si je puis te donner quelques conseils, pour ta requête je rajouter un or die(mysql_error());
Si tu veux pas laisser le mysql_error pour éviter qu'un méchant n'hackeur puisse récupérer plus d'informations sur la structure de tes tables en provoquant une erreur je te propose la solution suivante : création d'une constante DEBUG qui sera sur true lorsque tu veux afficher les erreurs et sur false dans le cas contraire. tu aurais donc une fonction, par exemple, comme suit :
function mysql_debug() {
if(DEBUG = = true){
return die('<center>Erreur MySQL n°'.mysql_errno().' :
'.mysql_error().' </center>');
}
}
et à la fin de tes requetes tu mettrais, à la place de "or die(mysql_error());", un "or mysql_debug();".
Bon bon c'est un peu hors sujet ça...pour ton problème il me semble que quand tu fais ça while "($res = mysql_fetch_array($sql))" l'array $res est disponible uniquement dans la boucle, ton $res['Mail'] n'étant pas dans la boucle ça marche pas.
essaye donc de mettre le $res = mysql_fetch_array($sql) avant la boucle et de mettre une boucle foreach à la place de la while.
mais à ce moment là l'adresse mail a t'elle un lien avec le patient ? est ce l'adresse du patient ? si oui je pense qu'il faut revoir le code.
Donc il vient affiché plusieurs fois le texte et il met les noms des patients dedans plutôt que le mail lol
Je pense que je vais plutôt m'orienter vers de l'Ajax pour régler se pbl, pour un affichage dynamique.
creaDB
Messages postés28Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention25 mars 2009 25 févr. 2009 à 15:03
oui l'adresse doit avoir un rapport avec le mail, elle doit correspondre dans l'affichage au select si je clic sur bidule c'est l'adresse mail de bidule qui s'affiche ... je pense aussi code a revoir mais un peu perdu