[Javascript]+[PHP]

Fermé
dantal Messages postés 2 Date d'inscription dimanche 22 juillet 2007 Statut Membre Dernière intervention 6 août 2007 - 22 juil. 2007 à 00:35
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 6 août 2007 à 15:31
Bonjour à tous.

je suis actuellement en train de programmer une application interne.

Je rencontre un petit problème que je vous soumets.

J'ai une page php qui contient un code. Dans ce code, une variable est envoyé à une fenêtre popup.

Dans ce popup je récupère cette variable pour lancer une requête. Cette requête me génère un tableau à plusieurs enregistrement.

Je peux si je le veux récupérer un enregistrement en le faire rebasculer dans la fenêtre principale.

Le problème que je rencontre est le suivant:

Dans mon tableau généré en php j'ai des champs identifié par une variable. Je ne parviens pas à faire basculer n'importe qu'elle enregistrement dans la première page.

Un peu de code simplifié pour illustrer:
Voici la première page (gr.php)

<a href="#" onclick="window.open('detail.php?Num_Demande=<? echo $Num_Demande;?>','','toolbar=0,menubar=0,location=0,scrollbars=1,width=400,height=300')">lien</a>


<br >

<input type="text" readonly="readonly" id="outFille" size="20" maxlength="10">


Voici le popup



$sql = 'SELECT * FROM tab_client, tab_contactclient Where tab_client.idclient=tab_contactclient.idclient AND tab_client.idclient="$Num_Demande" ';

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//echo "<table border='1' width='100%'>";
while($data = mysql_fetch_assoc($req))
    {

echo '<table border="1" width="100%">
	<tr> 
				<td>1</td>
				<td><input type="text" id="'.$data['nomcontact'].'"  size="20" maxlength="10" value="'.$data['nomcontact'].'"> </td><td><input type="button" value="Envoyer" onclick="TransfertFilleMere()"></td>
				
			
	</tr>';
	}



Le bout de code javascript est le suivant

 
function TransfertFilleMere()
{
 var elmtWinParent=window.opener.document.getElementById("outFille");
 var elmtWinFille=document.getElementById("inFille");
 
 elmtWinParent.value=elmtWinFille.value;
}



Le problème vient du faire que si je place dans mon popup id=inFille cela marche mais alors uniquement mon premier enregistrement du tableau transit.
Si je la palce à id="'.$data['nomcontact'].'" je n'ai plus rien.
Après recherche je comprend que cela vient dans mon javascript du document.getElementById("inFille") qui ne supporte une variable.

Quelqu'un aurait-il une idée pour me permettre de finir ce bout de code est passer à la suite?

Merci d'avance.
Cordialement

Dantal
A voir également:

3 réponses

dantal Messages postés 2 Date d'inscription dimanche 22 juillet 2007 Statut Membre Dernière intervention 6 août 2007
6 août 2007 à 13:53
Bonjour

Aucune idée alors!!!!
0
A mon avis le pb vient de la ligne:
echo '<table border="1" width="100%">
<tr>
<td>1</td>
<td><input type="text" id="'.$data['nomcontact'].'" size="20" maxlength="10" value="'.$data['nomcontact'].'"> </td><td><input type="button" value="Envoyer" onclick="TransfertFilleMere()"></td>


</tr>';


car tes ' de 'nomcontact' génent les ' de début et fin de ta chaine echo ' '

Echapes tes ' '.$data[\'nomcontact\'].' ou alors passe par une varaible intermediaire

$id=$data['nomcontact'] et ensuite id="'.$id.'"
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
6 août 2007 à 15:31
Il faut que le clic du bouton dise à la fonction de quel ID il s'agit.
Donc modifie ta fonction comme ceci :
function TransfertFilleMere(id)      // Rajout du paramètre
{
 var elmtWinParent=window.opener.document.getElementById("outFille");
 var elmtWinFille=document.getElementById(id);    // Utilisation du paramètre
 
 elmtWinParent.value=elmtWinFille.value;
}

Et également son appel :
'[...]<td><input type="button" value="Envoyer" onclick="TransfertFilleMere(\''.$data['nomcontact'].'\')"></td>[...]';        //Rajout du paramètre, à savoir l'id à envoyer
0