11485 sujets

JavaScript, DOM et API Web HTML5

Bonjour, après quelque recherche sur le forum je n'ai pas trouvé de réponse correspondant à mon problème ^^'

J'ai un formulaire php visant à trouver des utilisateurs dans un ldap (Active Directory), le résultat de ma recherche est affiché sous forme de tableau sous le formulaire lors de sa validation. Jusque là aucun souci.

Je crée un lien sur le nom de l'utilisateur dans le tableau qui ouvre un formulaire dans un popup.
J'aimerai que ce formulaire soit déjà prérempli avec les données précédentes dans le tableau qui est dans ma page mère et correspondant au nom sur lequel on a cliqué.

Et là est le problème, comment passer ces valeurs dans les champs de mon nouveau form s'il vous plait?

Le code donne ça pour le moment:


<form action="recherche.php" method="post">
Entrer le numéro de sécurité sociale de la personne désirée: <input type="text" name="recherche" value="<?echo $_POST["recherche"]?>" /></br>
Entrer le nom de la personne désirée: <input type="text" name="recherche1" /></br>
Entrer le nom de la société désirée:  <input type="text" name="recherche2" /></br>
Entrer le numéro de téléphone de la personne désirée: <input type="text" name="recherche3" /></br>
<? if (!empty($_POST["recherche"]) || !empty($_POST["recherche1"]) || !empty($_POST["recherche2"]) || !empty($_POST["recherche3"]))
{
echo "<input type=\"hidden\" name=\"user\" value=".$_POST["user"].">";
echo "<input type=\"hidden\" name=\"pass\" value=".$_POST["pass"].">";
}
else
{
echo "<input type=\"hidden\" name=\"user\" value=".$_GET["user"].">";
echo "<input type=\"hidden\" name=\"pass\" value=".$_GET["pass"].">";
}
?>
<p><input type="submit" value="Valider" /></p>
</form>

<?php

if(!empty($_POST["recherche"]))
{
	$ldap_host = *****; //inserer ici l'addresse du serveur LDAP
	$base_dn = *****; //base du domaine
	$ldapServer = $ldap_host;
	
	$recherche = $_POST["recherche"];//valeur du champs recherche
	$user = $_POST["user"];//nom de connexion
	$pass = $_POST["pass"];//pass de connexion

	$connect = ldap_connect($ldapServer) or exit(">>Connexion au serveur LDAP echoué<<");// connexion en anonymous
	
	ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); // on passe le LDAP en version 3, necessaire pour travailler avec le AD
	ldap_set_option($connect, LDAP_OPT_REFERRALS, 0); // option pour pouvoir faire une recherche de fiche ldap depuis la racine
    
	$filtre = "(&(objectclass=person)(samaccountname=$recherche*))"; // filtre de recherche , objectclass=person sert à acceder à toute les données de la fiche, le deuxieme critère est pour rechercher l'utilisateur en fonction de son identifiant de connexion

	$ldapBind = ldap_bind($connect,$user,$pass) or exit("ne peut se connecter");
	//echo $user;
	//echo $recherche;
	//echo $pass;
	 
	if ($ldapBind) 
	{
	$sr = ldap_search($connect, $base_dn, $filtre);
	$ent= ldap_get_entries($connect,$sr);

		echo "<table border=1>";
		 echo "<tr>
						 <th>Identifiant</th>
						 <th>Domicile </th>
						 <th>Mobile</th>
						 <th>Téléphone principal</th>
						 <th>Téléphone IP</th>
						 <th>Radiomessage</th>
						 <th>Télécopie</th>
			   </tr>";

		 // on affiche sous forme d'un tableau les personnes enregistrées
		 // dans l'annuaire avec un lien pour modifier
		 for ($i=0;$i<$ent["count"];$i++)
		 {
			  $mynom = $ent[$i]["cn"][0];
			  $homephone = $ent[$i]["homephone"][0];
			  $mobil = $ent[$i]["mobile"][0];
			  $mainphone = $ent[$i]["telephonenumber"][0];
			  $ipphone = $ent[$i]["ipphone"][0]; 
			  $radio = $ent[$i]["pager"][0];
			  $telecopie = $ent[$i]["facsimiletelephonenumber"][0];

			  echo "<tr><th><a href= \"#\" onclick= \"popup()\" name= \"nom\"  value = \"".$mynom." \">$mynom</a></th>
						<th><input type= \"text\" id= \"test\" name= \"homephone\"  value = \"".$homephone."\" disabled></input></a></th>
						<th><input type= \"text\"   value = \"".$mobil."\" disabled></input></th>
						<th><input type= \"text\"   value = \"".$mainphone."\" disabled></input></th>
						<th><input type= \"text\"   value = \"".$ipphone."\" disabled></input></th>
						<th><input type= \"text\"   value = \"".$radio."\" disabled></input></th>
						<th><input type= \"text\"   value = \"".$telecopie."\"disabled></input></th></tr>";
		

		 }
		 echo"</table>";
}
}

?>
<script language="javascript" type="text/javascript">
function popup()
{
window.open('./trait_recherche.php','modification','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=700, height=700');
}
</SCRIPT>

Ceci correspond à la page mère. Seul le premier champs effectue la recherche pour le moment.


<form action="trait_recherche.php" method="post">
Identifiant: <input type="text" value="" /></br>
Téléphone domicile: <input type="text" value="" /></br>
Téléphone portable:  <input type="text" value="" /></br>
Téléphone principal: <input type="text" value="" /></br>
Téléphone IP: <input type="text" value="" /></br>
Radiomessage: <input type="text" value="" /></br>
Télécopie: <input type="text" value="" /></br>
<input type="hidden" name="user" value="">
<input type="hidden" name="user" value="">
<p><input type="submit" value="Valider" /></p>
</form>


Voilà le formulaire de ma popup.

J'aimerai que mes value soir rempli par les variable $mynom,$telecopie,... mais je ne sais pas trop comment faire ^^' ou quelles fonctions utiliser.
De même pour faire passer mes variable $user et $pass. ^^'

Je sais pas si j'ai était très clair mais merci d'avance pour ceux qui se seront attarder sur mon sujet.
Modifié par hathyr (11 Feb 2009 - 10:18)
C'est ce que j'ai fini par faire ^^

J'espérai trouver une solution plus jolie mais le fonctionnel l'a emporté.

Merci.
Ben... après tu peux toujours appeler un fichier JS dans ton pop-up (au lieu du php) qui s'occupera de récupérer les données de sa fenêtre parente puis qui effectuera une requête XMLHTTP (ou DOMImplementation) et finira par charger les données dans le pop-up, mais je suis pas sur que ce soit plus pratique.
Modifié par MacIntoc (11 Feb 2009 - 10:54)