Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 05h12   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut Récupération de champs de fusion

Bonjour tout le monde !

Mon probléme est le suivant:

Je lis un fichier rtf et détectes les champs de fusion, jusque la tout va bien.
Dans la foulée, je génère un formulaire, que je dois ensuite traiter par post.

2 probléme:
1 A chaque champ texte, j'ai un bouton submit !!!!
2 Je commences a déprimer sérieusement, ci dessous le bout de code, si une ame charitable pourrait jeter un oeil !

Merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if ( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) {
	      echo "Impossible de copier le fichier dans $content_dir";
	    } else {
		    echo "Le fichier <u>$name_file</u> (".round(filesize($_SESSION['session']."/".$name_file)/1024,0)."Ko) a bien été uploadé";
				echo "<br>Champs de fusion trouvés :<br><b style='background:#C4E1FF;'>";
				// Récupération des champs de fusion
				$f=fopen($_SESSION['session']."/".$name_file,"r");
				$cf=1;
				while (!feof($f)) {
					$ligne=fgets($f,20000);
					$Long=strlen($ligne);	
					$inc=0;
					for ($i=$inc;$i<$Long;$i++)	{
						if (substr($ligne,$i,4)=="\{\{") {
							$deb=$i;
							$var="";
							for ($j=$i+4;$j<$Long;$j++) {
								if (substr($ligne,$j,4)=="\}\}") {
									$fin=$j;
									break;
								}
							}
							$var=substr($ligne,$deb+4,$fin-$deb-4);
 
echo '<FORM METHOD="post"action="cible.php">'; 
echo '<input type="text" name="jesaisplus' . $i . '" value="' . $var . '" />';
echo '<input type="submit" value="Valider"/></form>';
							$cf++;
						}		
					}
 
				}
				fclose($f);
				echo "</b>";
				?>
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 08h32   #2
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Bonjour,

Citation:
Envoyé par gator Voir le message
A chaque champ texte, j'ai un bouton submit !!!!
Code :
1
2
3
4
5
6
7
8
9
10
11
 
// [...]
while (!feof($f)) {
   // [...]
   for ($i=$inc;$i<$Long;$i++)	{
      // [...]
      echo '<FORM METHOD="post"action="cible.php">'; 
      echo '<input type="text" name="jesaisplus' . $i . '" value="' . $var . '" />';
      echo '<input type="submit" value="Valider"/></form>';
   }
}
D'un coté à chaque fois tu mets un champ texte, tu mets aussi un bouton submit...
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h13   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut forcément

forcément ca va marcher beaucoup moins bien !
Code :
1
2
3
4
5
6
7
8
9
10
11
$var=substr($ligne,$deb+4,$fin-$deb-4);
 
      echo '<FORM METHOD="post"action="champscomplementaires.php">'; 
      echo '<input type="text" name="jesaisplus' . $i . '" value="' . $var . '" />';
							$cf++;
						}		
					}
 
				}
				fclose($f);
				      echo '<input type="submit" value="Valider"/></form>';
La ca va beaucoup mieux !oups ! Merci merci
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h45   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut Probléme de récupération

Pour les variables passées en post :
je récupere seulement 2 dans le cas present variables a la place de 3!!!


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
while (!feof($f)) {
					$ligne=fgets($f,20000);
					$Long=strlen($ligne);	
					$inc=0;
					for ($i=$inc;$i<$Long;$i++)	{
						if (substr($ligne,$i,4)=="\{\{") {
							$deb=$i;
							$var="";
							for ($j=$i+4;$j<$Long;$j++) {
								if (substr($ligne,$j,4)=="\}\}") {
									$fin=$j;
									break;
								}
							}
							$var=substr($ligne,$deb+4,$fin-$deb-4);
 
      echo '<FORM METHOD="post"action="champscomplementaires.php">'; 
      echo '<input type="text" name="jesaisplus' . $i . '" value="' . $var . '" />';
							$cf++;
						}		
					}
 
				}
				fclose($f);
				      echo '<input type="submit" value="Valider"/></form>';
Et dans mon fichier de traitement :

Code :
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_POST)) {
foreach($_POST as $key=>$val) {
 echo $key.'=>'.$val.'<p>'; 
 }
}
else {
 echo 'je ne recupere rien';
}
?>
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h51   #5
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Code :
echo '<FORM METHOD="post"action="champscomplementaires.php">';
doit être avant ta boucle, sinon tu crées plusieurs form (que tu ne fermes pas d'ailleurs), et le submit est seulement sur le dernier.
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 17h12   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut ca passe pas

Merci de me lire... Ca passe pas
Code :
1
2
3
4
$f=fopen($_SESSION['session']."/".$name_file,"r");
				$cf=1;
				echo '<FORM METHOD="post"action="champscomplementaires.php">';
				while (!feof($f)) {
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 01h59   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut ca passe !

La c bon !!
Merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
				$f=fopen($_SESSION['session']."/".$name_file,"r");
				$cf=1;
				while (!feof($f)) {
					$ligne=fgets($f,20000);
					$Long=strlen($ligne);	
					$inc=0;
					for ($i=$inc;$i<$Long;$i++)	{
						if (substr($ligne,$i,4)=="\{\{") {
							$deb=$i;
							$var="";
							for ($j=$i+4;$j<$Long;$j++) {
								if (substr($ligne,$j,4)=="\}\}") {
									$fin=$j;
									break;
								}
							}
							$var=substr($ligne,$deb+4,$fin-$deb-4);
 
      echo '<FORM METHOD="post"action="champscomplementaires.php">'; 
	  echo  $var;
      echo '<input type="text" name="' . $cf . '" value=""><br /><br />';
							$cf++;
						}		
					}
 
				}
				fclose($f);
				      echo '<input type="submit" value="Valider"/></form>';
					  echo "<br>Nous avons trouvé $cf Champs de fusion<br><b style='background:#C4E1FF;'>";
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 09h45   #8
Membre expérimenté
 
Inscription : mai 2006
Messages : 501
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2006
Messages : 501
Points : 576
Points : 576
Citation:
Envoyé par gator Voir le message
La c bon !!
Merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
				$f=fopen($_SESSION['session']."/".$name_file,"r");
				$cf=1;
				while (!feof($f)) {
					$ligne=fgets($f,20000);
					$Long=strlen($ligne);	
					$inc=0;
					for ($i=$inc;$i<$Long;$i++)	{
						if (substr($ligne,$i,4)=="\{\{") {
							$deb=$i;
							$var="";
							for ($j=$i+4;$j<$Long;$j++) {
								if (substr($ligne,$j,4)=="\}\}") {
									$fin=$j;
									break;
								}
							}
							$var=substr($ligne,$deb+4,$fin-$deb-4);
 
      echo '<FORM METHOD="post"action="champscomplementaires.php">'; 
	  echo  $var;
      echo '<input type="text" name="' . $cf . '" value=""><br /><br />';
							$cf++;
						}		
					}
 
				}
				fclose($f);
				      echo '<input type="submit" value="Valider"/></form>';
					  echo "<br>Nous avons trouvé $cf Champs de fusion<br><b style='background:#C4E1FF;'>";
? Ce serait surprenant... Tu ouvres pleins de balises form que tu ne refermes pas... Regarde le code html que tu génères...
Fabllot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 22h43   #9
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 89
Points : 10
Points : 10
Par défaut merci

Merci,
Je vais regarder ca proprement !!
mais je te confirme que ca fonctionne !!
gator est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h10.


 
 
 
 
Partenaires

Hébergement Web