copier coller entre page php

Eléphant du PHP | 88 Messages

08 août 2006, 13:53

Salut.

Essaye ceci :

Dans recherche_client.php:
<?php 
session_start();

require_once('connexion.php'); 
/* 
----------------------------------- 
------ SCRIPT DE PROTECTION ------- 
----------------------------------- 
*/
// On relaye la session 
if (session_is_registered("authentification") && $_SESSION['privilege'] == "com" || $_SESSION['privilege'] == "prod"){ // vérification sur la session authentification (la session est elle enregistrée ?) 
// redirection possible 
}else{ 
header("Location:index.php?erreur=intru"); // redirection en cas d'echec 
}
?> 
<html> 
<head> 
   <title>Recherche code client</title> 
</head> 

<body background="image/back.jpg" border="0" bordercolor="#ffffdd"> 
<h2 align="center">Recherche code client</h2> 
<form method="POST" action="recherche_client.php">
<table width="500" height="300" align="center">    
   <tr> 
   <td width="45%"  align="left"><b>Libellé client/société :</b></td> 
   <td align="left"><input type="texte" name="libelle"></td> 
   </tr> 
   <tr> 
   <td align="left"><b>Département :</b></td> 
   <td align="left"><input type="texte" name="dept"></td> 
   </tr> 
   <tr> 
   <td align="center"><INPUT Type="Button" Value="Fermer cette fenêtre" onclick="javascript:window.close()"></td> 
   <td align="center"><INPUT Type="submit" name="rechercher" value="Rechercher le code"></td> 
   </tr> 
</table> 

</form method="POST">
<?php 
if ($_POST["rechercher"]) { 
   $libelle=$_POST["libelle"]; 
   $dept=$_POST["dept"];       
   if ($libelle=="" && $dept=="") { 
   $message="Veuillez renseigner au moins un champs !"; 
   echo $message; 
   exit; 
   } 
//-------------------------Connexion au SERVEUR SQL SRV-S5-LEBLANC POUR RECHERCHE DU CODE CLIENT--------------------------------- 
$connexion=mssql_connect("******","**","**") or die("<p>Echec de connexion!"); 
mssql_select_db("DB000000", $connexion) or die ("<p>Echec de connexion à la base de donnée!"); 

   if ($connexion){ 
      $SQL=mssql_query("SELECT T_TIERS,T_LIBELLE,T_CODEPOSTAL,T_VILLE FROM TIERS WHERE T_LIBELLE LIKE '%".$libelle."%' AND T_CODEPOSTAL LIKE '".$dept."%'", $connexion); 
      if ($SQL) { 
         $result=mssql_fetch_array($SQL); 
         if ($result!=null){ 
            $result=mssql_fetch_array($SQL);
            $tab_code=$result["T_TIERS"];
		$_SESSION["code"] = $tab_code;
		echo "code enregistré";
            }
         }else {
            echo "Aucun résultat trouvé !"; 
         }
      }
   } 
?> 
<div><?php echo $message; ?></div> 
</body> 
</html>
et dans le fichier fichesdes.php :
<?php
session_start(); // On relaye la session 

require_once('connexion.php'); 
/* ----------------------------------- 
*  ------ SCRIPT DE PROTECTION ------- 
*  ----------------------------------- */ 

if (session_is_registered("authentification") && $_SESSION['privilege'] == "com" || $_SESSION['privilege'] == "prod" || $_SESSION['privilege'] == "simu"){ // vérification sur la session authentification (la session est elle enregistrée ?) 
//eventuelle redisrection ou code divers... 
}else{ header("Location:index.php?erreur=intru"); // redirection en cas d'echec 
} 
?> 

<!-- FORMULAIRE FICHE DESCRIPTIVE --> 
<html> 
<head> 
   <title>EasyFiche</title> 
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 


<body> 


<table style="width: 1024px; height: 768px; text-align: left; margin-left: auto; margin-right: auto;" background="image/back.jpg" border="0" bordercolor="#ffffdd"> 


  <tbody> 


    <tr> 


      <td style="text-align: justify;"> 
      
      <form name="form_fiche" method="post" action="traitement_fiche.php"> 
        
.....

<?php

if (isset($_SESSION["code"]) && !empty($_SESSION["code"])){
	$codeClient = $_SESSION["code"];
}
else{
	$codeClient="";
}

?>
<input name="client" size="15" maxlength="40" type="text" value="<?php echo $codeClient; ?>">
<input value="Rechercher code" type="button" onclick="window.open('recherche_client.php','Client')">

.....
@+

Eléphant du PHP | 183 Messages

08 août 2006, 15:00

Salut leakcim51 et merci de me suivre encore ;-)
Bon ta solution a l'air bonne, mais le truc c'est que mes résulats de ma requete sont inserés par ligne ds un tableau, au bout de laquelle il y a un bouton "copier ce code" et c'est par rapport a ce bouton que je veux déclencher l'action de $_SESSION['code']=$tab_code; et la recupérer ds fichedes.php sans qu'il m'ouvre une nouvelle fenetre. mais si on fait avec ta solution, est-ce que $_SESSION['code'] ne va pas prendre la valeur de $tab_code SEULEMENT de la derniere ligne créee, vu qu'a chaque ligne créee c'est tjs le meme nom de variable?

if ($connexion){
		$SQL=mssql_query("SELECT T_TIERS,T_LIBELLE,T_CODEPOSTAL,T_VILLE FROM TIERS WHERE T_LIBELLE LIKE '%".$libelle."%' AND T_CODEPOSTAL LIKE '".$dept."%' and (T_NATUREAUXI=\"CLI\" OR T_NATUREAUXI=\"PRO\")", $connexion);
			if ($SQL){
//J'AI AJOUTER UN COMPTEUR
				$count=mssql_num_rows($SQL);
				if ($count==0) {
				echo "<b>Pas de Résultat</b>"; //si il n'y a pas de résultats
        		}else{
                echo $count."<b> Résultat(s)</b><br>";	
				echo "<table border=\"1\" width=\"100%\"><TH width=\"15%\">CODE CLIENT</TH><TH width=\"30%\">LIBELLE</TH><TH width=\"15%\">CODE POSTAL</TH><TH width=\"20%\">VILLE</TH><TH width=\"20%\"></TH>"; 
				}
//MES RESULTATS PAR LIGNES DS TABLO AVEC BOUTONS COPIER
				while ($result=mssql_fetch_array($SQL)) {
				$tab_code=$result["T_TIERS"];	
				$tab_libelle=$result["T_LIBELLE"];
				$tab_code_postal=$result["T_CODEPOSTAL"];
				$tab_ville=$result["T_VILLE"];
				$_SESSION["code"] = $tab_code; 
				echo "
				<form name=\"form_code\" method=\"POST\">
				<table border=\"1\" width=\"100%\">
				<tr>
				<td width=\"15%\">".$tab_code."</td>
				<td width=\"30%\">".$tab_libelle."</td>
				<td width=\"15%\">".$tab_code_postal."</td>
				<td width=\"20%\">".$tab_ville."</td>
				<td colspan=5 width=\"20%\"><input type=\"submit\" name=\"copie_code\" value=\"Copier code client\"></td>
				</tr>
				</table>
				</form>";
				} 
			}else {
			echo "erreur requête...";
			} 		
		}
	
}
if ($_POST["copie_code"]) { 
	//COMMENT JE RENVOIS VERS FICHEDES.PHP SANS LE HEADER QUI
 //OUVRE UNE NOUVELLE ET COMMENT REMPLIR EN MEME TEMPS LE INPUT CLIENT...
}
?>
[/php]

Eléphant du PHP | 183 Messages

08 août 2006, 15:10

Bon c'est bien ce que je disais leakcim51, mais au moins ça marche :-) c'est une avancé, bon le probleme vient effectivement du fait que comme la variable est répété N fois ds le tableau il copie seulement le code de la derniere ligne du tableau, bon je continu a bosser dessus, tiens moi au courant si tu trouves une idée merci encore.

Eléphant du PHP | 183 Messages

08 août 2006, 17:24

Derniere modif mineure, mais au moins mon tableau ne fait plus qu'un quelque soit le resultat peut etre ça va aider mais en tout cas c'est plus beau :-) en attendant de l'aide pour que ça marche vraiment , merci ceux qui prennent du temps pour aider les autres ...
if ($connexion){
		$SQL=mssql_query("SELECT T_TIERS,T_LIBELLE,T_CODEPOSTAL,T_VILLE FROM TIERS WHERE T_LIBELLE LIKE '%".$libelle."%' AND T_CODEPOSTAL LIKE '".$dept."%' and (T_NATUREAUXI=\"CLI\" OR T_NATUREAUXI=\"PRO\")", $connexion);
			if ($SQL){
				$count=mssql_num_rows($SQL);
				if ($count==0) {
				echo "<b>Pas de Résultat</b>"; //si il n'y a pas de résultats
        		}else{
                echo $count."<b> Résultat(s)</b><br><br>";	
				echo "<form name=\"form_code\" method=\"POST\">
				<table border=\"1\" width=\"100%\"><TH width=\"15%\">CODE CLIENT</TH><TH width=\"30%\">LIBELLE</TH>
				<TH width=\"15%\">CODE POSTAL</TH><TH width=\"20%\">VILLE</TH><TH width=\"20%\"></TH>"; 
				$ligne=0;
				while ($result=mssql_fetch_array($SQL)) {
				$tab_code=$result["T_TIERS"];	
				$tab_libelle=$result["T_LIBELLE"];
				$tab_code_postal=$result["T_CODEPOSTAL"];
				$tab_ville=$result["T_VILLE"];
				$_SESSION["code"]=$tab_code;
				echo "				
				<tr>
				<td width=\"15%\">".$tab_code."</td>
				<td width=\"30%\">".$tab_libelle."</td>
				<td width=\"15%\">".$tab_code_postal."</td>
				<td width=\"20%\">".$tab_ville."</td>
				<td colspan=5 width=\"20%\"><input type=\"submit\" name=\"copie_code\" value=\"Copier code client\"></td>
				</tr>";
				$ligne++;
				} 
				echo "</table></form>";
				}
			} else {
			echo "erreur requête...";
			} 		
		}
	
}
if ($_POST["copie_code"]) { 
	header("Location:fichedes.php");
}
?>

Eléphant du PHP | 88 Messages

08 août 2006, 17:48

Effectivement,

ta valeur de session ne vas prendre que le dernier enregistrement. Si j'ai bien compris, lorsque la personne rentre les champs Libellé client et département, tu affiches une liste des réponses possibles. C'est bien cela?

Si oui, je ne pense pas que tu puisses passer par tes N bouttons du type submit(). Tu peux faire pour chaque enregistrement un <input type="button" action="ta_fonction($ton_code)">.

et avec
fonction ta_fonction ($ton_code){
  $_SESSION["code"]=$ton_code;
  exit();
}
Bon courage

Eléphant du PHP | 183 Messages

08 août 2006, 18:12

salut leakcim51,
Si j'ai bien compris, lorsque la personne rentre les champs Libellé client et département, tu affiches une liste des réponses possibles. C'est bien cela?
En fait sur mon 1er formaulaire c'est une sorte de devis, et dans le champs "Collectivité/Société" l'utilisateur doit saisir un code client interne, donc comme ils ne l'ont pas en tete j'ai fais un moteur de recherche. Dans les résulats du moteur, l'utilisateur choisi l'entreprise qu'il cherchait et appuit sur le bouton copier code pour qu'il n'ai meme pas a le retaper (avec risque d'erreur) dans le champ "Collectivité/Société".

Eléphant du PHP | 183 Messages

08 août 2006, 19:02

J'ai testé mais il prend tjs le code de la derniere ligne, et en plus il faut réactualiser la page Mere pour voir le code client apparaitre ds le champ, :-((( fais ch...r !!

Eléphant du PHP | 183 Messages

09 août 2006, 10:21

Salut !!!!!!!!!!!!!! :D
Bon j'ai réussi a copier le bon code correspondant a la bonne ligne, dans le champs de la fentre mere, Par contre je me retrouve avec une nouvelle fentre mere et perd les infos dans les champs qui avait été taper. Qui a une solution a ça??
Voici le code qui marche tous seul avec ces petites pattes :-)
if ($connexion){
		$SQL=mssql_query("SELECT T_TIERS,T_LIBELLE,T_CODEPOSTAL,T_VILLE FROM TIERS WHERE T_LIBELLE LIKE '%".$libelle."%' AND T_CODEPOSTAL LIKE '".$dept."%' and (T_NATUREAUXI=\"CLI\" OR T_NATUREAUXI=\"PRO\")", $connexion);
			if ($SQL){
				$count=mssql_num_rows($SQL);
				if ($count==0) {
				echo "<b>Pas de Résultat</b>"; //si il n'y a pas de résultats
        		}else{
                echo $count."<b> Résultat(s)</b><br><br>";	
				echo "<form name=\"form_code\" method=\"POST\">
				<table border=\"1\" width=\"100%\"><TH width=\"15%\">CODE CLIENT</TH><TH width=\"30%\">LIBELLE</TH>
				<TH width=\"15%\">CODE POSTAL</TH><TH width=\"20%\">VILLE</TH><TH width=\"20%\"></TH>"; 
				//Tableau avec récupération de la valeur code client grâce au bouton radio...
				while ($result=mssql_fetch_array($SQL)) { 
				$tab_code=$result["T_TIERS"];	
				$tab_libelle=$result["T_LIBELLE"];
				$tab_code_postal=$result["T_CODEPOSTAL"];
				$tab_ville=$result["T_VILLE"];
				echo "				
				<tr>
				<td width=\"15%\">".$tab_code."</td>
				<td width=\"30%\">".$tab_libelle."</td>
				<td width=\"15%\">".$tab_code_postal."</td>
				<td width=\"20%\">".$tab_ville."</td>
				<td colspan=5 width=\"20%\"><INPUT type=\"radio\" name=\"code\" value=\"".$tab_code."\">
				<input type=\"submit\" name=\"copie_code\" value=\"Copier code client\"></td>
				</tr>";
				}
				echo "</table></form>";
				}
			} else {
			echo "erreur requête...";
			} 		
		}
}
//Copie Coller du code client du moteur de recherche à la fiche Descriptive dans le champ Collectivité/Société : ...
if ($_POST["copie_code"] && $_POST["code"]) {
	$code=$_POST["code"];
	$_SESSION["code"]=$code;
header("Location:fichedes.php"); ?>
<SCRIPT language="javascript">
onclick="javascript:window.close()";
</SCRIPT>
<?php } ?>
</form>
</body>
</html>

Eléphant du PHP | 183 Messages

09 août 2006, 11:51

AFFAIRE RESOLU LES AMIS :-)

voici le code finale qui copie le code client et le renvois dans le champ correspondant dans la fenetre mere, sans en ouvrir une nouvelle, nickel, un grand merci principalement à leakcim51 qui m'a suivit jusqu'au bout !!!
<?php
require_once('connexion.php');
/*
-----------------------------------
------ SCRIPT DE PROTECTION -------
-----------------------------------
*/

session_start(); // On relaye la session
if (session_is_registered("authentification") && $_SESSION['privilege'] == "com" || $_SESSION['privilege'] == "prod"){ // vérification sur la session authentification (la session est elle enregistrée ?)
// redirection possible
}else{
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<html>
<head>
	<title>Recherche code client</title>
</head>

<body background="image/back.jpg" border="0" bordercolor="#ffffdd">
<div><?php echo $message; ?></div>
<h2 align="center">Recherche code client</h2>
<form method="POST" action="recherche_client.php">
<table width="500" height="300" align="center">	
	<tr>
	<td width="45%"  align="left"><b>Libellé client/société :</b></td>
	<td align="left"><input type="texte" name="libelle"></td>
	</tr>
	<tr>
	<td align="left"><b>Département :</b></td>
	<td align="left"><input type="texte" name="dept"></td>
	</tr>
	<tr>
	<td align="center"><INPUT Type="Button" Value="Fermer cette fenêtre" onclick="javascript:window.close()"></td>
	<td align="center"><INPUT Type="submit" name="rechercher" value="Rechercher le code"></td>
	</tr>
</table>

<?php 

if ($_POST["rechercher"]) {
	$libelle=$_POST["libelle"];
	$dept=$_POST["dept"];		
	if ($libelle=="" && $dept=="") {
	echo "<b>Veuillez renseigner au moins un champs !</br>";
	exit;
	} 
//-------------------------Connexion au SERVEUR SQL SRV-S5-LEBLANC POUR RECHERCHE DU CODE CLIENT---------------------------------
$connexion=mssql_connect("hote","root","pass") or die("<p>Echec de connexion!");
mssql_select_db("database", $connexion) or die ("<p>Echec de connexion à la base de donnée!");
	if ($connexion){
		$SQL=mssql_query("SELECT T_TIERS,T_LIBELLE,T_CODEPOSTAL,T_VILLE FROM TIERS WHERE T_LIBELLE LIKE '%".$libelle."%' AND T_CODEPOSTAL LIKE '".$dept."%' and (T_NATUREAUXI=\"CLI\" OR T_NATUREAUXI=\"PRO\")", $connexion);
			if ($SQL){
				$count=mssql_num_rows($SQL);
				if ($count==0) {
				echo "<b>Pas de Résultat</b>"; //si il n'y a pas de résultats
        		}else{
                echo $count."<b> Résultat(s)</b><br><br>";	
				echo "<form name=\"form_code\" method=\"POST\">
				<table border=\"1\"  bordercolor= \"white\" width=\"100%\"><TH width=\"15%\">CODE CLIENT</TH><TH width=\"25%\">LIBELLE</TH>
				<TH width=\"15%\">CODE POSTAL</TH><TH width=\"15%\">VILLE</TH><TH width=\"30%\"></TH>"; 
				//Tableau avec récupération de la valeur code client grâce au bouton radio...
				while ($result=mssql_fetch_array($SQL)) { 
				$tab_code=$result["T_TIERS"];	
				$tab_libelle=$result["T_LIBELLE"];
				$tab_code_postal=$result["T_CODEPOSTAL"];
				$tab_ville=$result["T_VILLE"];
				echo "				
				<tr>
				<td >".$tab_code."</td>
				<td >".$tab_libelle."</td>
				<td >".$tab_code_postal."</td>
				<td >".$tab_ville."</td>
				<td colspan=5><INPUT type=\"radio\" name=\"code\" value=\"".$tab_code."\">
				<input type=\"submit\" name=\"copie_code\" value=\"Copier code client\";></td>
				</tr>";
				}
				echo "</table></form>";
				}
			} else {
			echo "erreur requête...";
			} 		
		}
}
//Copie Coller du code client du moteur de recherche à la fiche Descriptive dans le champ Collectivité/Société : ...
if ($_POST["copie_code"] && $_POST["code"]) {
	$code=$_POST["code"];
	$_SESSION["code"]=$code;
?>
<SCRIPT language="javascript">
window.opener.location="fichedes.php";
</SCRIPT>
<?php } ?>
</form>
</body>
</html>
Mais je vais pas tardé a demander de l'aide, mon projet de stage est balaise pour un débutant comme moi ;-) a+

Eléphant du PHP | 88 Messages

09 août 2006, 16:58

C'est cool si tu as réussi! Bon courage pour la suite!

Mais un petit clic sur Résolu serait pas mal! :lol:

Eléphant du PHP | 183 Messages

09 août 2006, 17:40

je trouve pas le bouton resolu, PS MODERATEUR tu peux le faire svp, je trouve pas ou c'est ;-) merci