[Javascript]+[PHP]

dantal Messages postés 2 Statut Membre -  
Reivax962 Messages postés 3742 Statut Membre -
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 Statut Membre
 
Bonjour

Aucune idée alors!!!!
0
Alain42
 
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 3742 Statut Membre 1 011
 
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