Actualisation de champs php/javascript

Résolu/Fermé
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 - Modifié par angelus1821 le 8/02/2011 à 16:23
Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 - 10 févr. 2011 à 09:52
Bonjour,
Pour mon logiciel medical, dans la partie consultation, j'aimerais actualiser des <textArea> en fonction d'un clique sur un bouton.
Je m'explique:
Voici mes tables que j'utilise :
dossier (dateConsult,numero ,motif,examen, diagnostic, idRefpatient)
patient (idPatient, nom ,prenom,dateNaiss, SS,adresse ,cp,ville,idRefMed)

$idpatient = $_SESSION['idpatient']; //je recupere mon id du patient 
#requete pour une liste de date, dans des boutons 
$rechercheDossier="select dateConsult from dossier where idRefpatient=$idpatient " or die(mysql_error()); 

$resultat =mysql_query($rechercheDossier) or die(mysql_error()); 
while ($affichage=mysql_fetch_array($resultat)) 
{ 
  #affiche une liste de date
echo "<input type='submit' value='".$affichage[0]."' name='bouton'>"; 

}
.....
.....
<fieldset >
<legend>Motif</legend>
       <textarea " name="chpMotif" id="motif" >
        </textarea>
</fieldset>
<fieldset >
<legend>examen</legend>
       <textarea " name="chpexam" id="motif" >
        </textarea>
</fieldset>
<fieldset >
<legend>diagnostic</legend>
       <textarea " name="chpdiag" id="motif" >
        </textarea>
</fieldset>


Ce que je voudrais faire, lorsque je clique sur le premier bouton par exemple, dont la date est " 20/10/2010 " , ça me fasse une requete php, et ça m'actualise mes champ motif, exam diagnostic
====>autrement dit, je souhaite avoir le diagnostic, motif et examen, du patient à la date qui corespond au bouton cliqué.

J'ai essayé de mettre sous forme de lien, à la place de bouton, mais j'ai pas trop reussi.

Un grand merci d'avance pour votre aide!!!
A voir également:

5 réponses

Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 32
Modifié par Fetide68 le 8/02/2011 à 16:26
Je ne comprends pas tout le problème... Ou sont les textArea et quelles infos doivent ils recevoir ?

Je ne saisis pas trop l'intérêt des input "submit". Ca s'utilise en général dans des balises <form>, et le fait de soumettre la requête, recharge la page au clic.

<input type="button" value="affichage[0]" onclick="document.getElementById('textarea').value+=this.value+' ';" />   

<textearea id="textarea"></textarea>
0
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 16
8 févr. 2011 à 16:34
les textArea sont disposé a coté, j'en ai bavé, mais c'est juste une question de style, une fois ce petit proble resolu, le style devrait pas posé de problème.

Bien vu, sinon, pour le type="button", je vais essayé ça de suite, car dans l'input, quand je fais :
onclick="alert(this.value" 

,cela m'affiche la date de chaque bouton, mais faire une requete, en fonction de chaque bouton cliqué ,pas facile.
quand tu dis:
onclick="document.getElementById('textarea').value+=this.value+' ';"

cela veut dire , sur clique du bouton, par exemple pour le textArea "motif" = date du bouton cliqué, or ce que je souhaite c'est :
quand tu clique sur le bouton, on puisse selectionner le motif dont la date = bouton cliqué ? est ce correct?
0
Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 32
8 févr. 2011 à 17:06
onclick="document.getElementById('textarea').value+=this.value

Cela signifie que quand je clique sur le bouton, la valeur de ce boutton sera donnée au textarea dont l'id est égal à "textarea".
0
Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 32
8 févr. 2011 à 17:05
Il y a certainement beaucoup plus simple, mais avec les éléments dont je dispose, c'est ce que j'ai trouvé de mieux :

A mettre dans des balises <script> avant le header, ou dans un fichier à part. Il s'agit d'une fonction JavaScript qui envoie les valeurs dans les textarea :

function getVisite(motif,examen,diagnostic) {
document.getElementByID('motif').value=motif;
document.getElementByID('motif').value=examen;
document.getElementByID('motif').value=diagnostic;
}


Ensuite la requête qui ajoute les réponse dans un Array PHP incrémenté (j'ai modifié la reqûete car il nous faut tous les champs :


$date=Array();
$motif=Array();
$examen=Array();
$diagnostic=Array();

$rechercheDossier="select * from dossier where idRefpatient=$idpatient "

while ($affichage=mysql_fetch_array($resultat)) 
{ 
$date[]=$affichage['dateConsult'];
$motif[]=$affichage['motif']; // incrémenter l'array motif avec les valeurs de motf dans la base de données
$examen[]=$affichage['examen'];
$diagnostic[]=$affichage['diagnostic'];
}

// boucle pour afficher les boutons avec les array qu'on vient de faire :

for ($i=0;$i<count($date);$i++) {
echo "<input type='button' value='".$date[$i]."' onclick='getVisite(\"".$motif."\",\"".$examen."\",\"".$diagnostic."\");'>"; 

}


Et enfin, le HTML :
<fieldset >
<legend>Motif</legend>
       <textarea id="motif" >
        </textarea>
</fieldset>
<fieldset >
<legend>examen</legend>
       <textarea id="examen" >
        </textarea>
</fieldset>
<fieldset >
<legend>diagnostic</legend>
       <textarea id="diagnostic" >
        </textarea>
</fieldset>
0
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 16
8 févr. 2011 à 17:35
ça me met un " Parse error: parse error ...."
En fait , j'ai la fonction du debut, que tu ma mise:
   document.getElementByID('motif').value=motif;
   document.getElementByID('motif').value=examen;
   document.getElementByID('motif').value=diagnostic;

ce ne serait pas plutot :

document.getElementByID('motif').value=motif;
document.getElementByID('exmen').value=examen;
document.getElementByID('diagnostic').value=diagnostic;

????

Puis j'ai mis cela :
$date=Array();
$motif=Array();
$examen=Array();
$diagnostic=Array();

$rechercheDossier="select * from dossier where idRefpatient=$idpatient "

while ($affichage=mysql_fetch_array($resultat)) 
{ 
$date[]=$affichage['dateConsult'];
$motif[]=$affichage['motif']; // incrémenter l'array motif avec les valeurs de motf dans la base de données
$examen[]=$affichage['examen'];
$diagnostic[]=$affichage['diagnostic'];
}

// boucle pour afficher les boutons avec les array qu'on vient de faire :

for ($i=0;$i<count($date);$i++)
{
	echo "<input type='button' value='".$date[$i]."' onclick='getVisite(\"".$motif."\",\"".$examen."\",\"".$diagnostic."\");'>"; 
}


mis je ne comprend pas quand tu dis " incrémenter l'array motif avec les valeurs de motif "
J'ai un peu de mal avec le javascript ,quand sa devient compliqué , pourrait tu m'expliquer un peu plus stp, merci
0
Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 32
9 févr. 2011 à 16:15
Le parse error renvoie à une ligne du code... (par ex: parse error on line 22), purrais-tu me dire à quelle ligne ça correspond stp ?

Ensuite pour le javascript, ce que tu as changé à la place de motif, c'est juste... Pardon pour l'erreur. Je n'ai pas tes documents ni ta base de données, je n'ai pas pu tester mon code...

Attention à la façon dont tu as écris l'input (même si l'erreur vient de moi) :
echo "<input type='button' value='".$date[$i]."' onclick='getVisite(\"".$motif."\",\"".$examen."\",\"".$diagnostic."\"); /'>";
Il faut pas oublier le slash avant la fin de la balise...

Concernant, les array, je vais tenter une approche depuis le début... mais je ne suis pas très doué pour expliquer (j'ai juste été et je suis encore un peu débutant et je connais les inquiétudes des débutants pour qui tout est du chinois au début) et c'est du php, pas du javascript (même si les array fonctionnent un peu de la même façon :

Les arrays sont des variables, comme les variables mais qui se composent de plusieurs valeurs.

une variable = une valeur;
un array = une valeur, une autre, une troisième, etc...

exemple:
$array = array("bonjour","salut");

Les valeurs sont accessibles par des indexes : l'index 1 de $array = bonjour, l'index 2 = salut,...

Mais attention, en php et javascript l'index 1 est en réalité l'index 0, c'est à dire que si tu fais :
echo $array[1], tu obtiendras salut et non bonjour.
pour afficher bonjour c'est echo $array[0];

J'ai donc déclaré mes variables pour les arrays qui étaient vides au départ, nous allons nous baser sur l'array $date, sachant que les autres fonctionnent pareil.

$date=array();

ensuite la boucle pour ta requête (while...): tant que la requête reçoit des réponse, on incrémente le tableau...
Admettons qu'il y y ait deux réponses obtenues pour ta requête : 17/01/2010 et 20/01/2010 (un mec qui est souvent malade... :)

après la boucle while, $date[0]="17/01/2010" et $date[1]="20/01/2010";

Une autre boucle permet ensuite d'afficher les input, tant que le array $date contient une valeur count($date).

Pour chaque bouton, on aura donc un input avec les valeurs nécessaires et les paramètres qu'il faudra envoyer à la fonction javascript "getVisite(paramètres)..."

Voilà, je pense avoir fait le tour de la question. Si tu en as encore, je tâcherai d'y répondre si j'ai le temps...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 16
9 févr. 2011 à 17:48
j'ai reussi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ça ma pris 2h aujourd'hui, rien que pour ce petit probleme, mais j'y suis arrive !

j'ai mis cela :
for ($i=0;$i<count($date);$i++)
{
	echo "<input type='button' value='".$date[$i]."' onclick='getVisite(\"".$motif[$i]."\",\"".$examen[$i]."\",\"".$diagnostic[$i]."\");'>"; 
}


j'ai rajouté les $i dans les input et maintenant en fonction du bouton cliqué, cela m'afffiche les differentes données '( motif, examen et diagnostic)

UN grand merci à toi !!!!!!!!!!!!!!
J'ai fais plusieurs test et ça marche, un tres grand merci a toi !!!!!!
0
Fetide68 Messages postés 737 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 14 avril 2023 32
10 févr. 2011 à 09:52
De rien...
Je ne voudrais pas te froisser, mais je trouve que tu fais pas mal de fautes d'orthographe/grammaire pour un médecin...

Consulte le site du zéro (siteduzero.com) pour devenir un crack en php/html/javascript et dans bien d'autres langages...
0