Php

Résolu/Fermé
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 - 20 nov. 2008 à 13:31
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 - 21 nov. 2008 à 08:41
Bonjour,

voila, j'ai une page html dans laquel j'ai un formulaire à liste déroulante, j'aimerai que cette liste soit faite à partir d'un fichier text de mon serveur, seulement je n'ai pas la moindre idée de comment faire

j'ai bien essayer avec fopen qui m'affiche bien mon fichier text à l'écran mais pas de façon propre en collone et encore mois dans mon formulaire

merci pour votre aide
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 nov. 2008 à 13:44
Salut,

je suppose que dans ton fichier tu as un item par ligne

donc:

<?php
$array_fichier=file("ton_fichier.txt"); //ça ouvre, lit le fichier le mets ligne par ligne dans un array et ferme
echo "<select name=\"......\" >";
if(sizeof($array_fichier)>0{

foreach($array_fichier as $cle=>$value){
   echo "<option value=\"".$value."\">".$value."</option>";

}

}
echo "</select>";

?>


@lain
0
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 2
20 nov. 2008 à 14:09
merci pour ta reponse
effectivement mon fichier comporte bien un item par ligne, il ressemble a sa :
toto
tata
titi

voila ma page php

<html>
<head>
<title>test</title>
</head>
<body>
<h1>test</h1>
<p></p>
<form id="FormText" action="test.php" onsubmit="" method="post">
<table width="30%" class="ignorer">
<td align="center" class="ignorer"> selectionner:</td>
<?php
$array1=file("/tmp/file");
echo "<select size="1" name="var1">";
if(sizeof($array1)>0{

foreach($array1 as $cle=>$value){
echo "<option value=\"".$value."\">".$value."</option>";
}

}
echo "</select>";
?>
</table>
</form>
</body>
</html>

et sa ne m'affiche rien du tous
si tu a une idée
merci d'avance
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 nov. 2008 à 14:34
$array1=file("/tmp/file")

ton fichier se nomme file ?

ou file.txt ?

et d'après ce que tu écris il devrait être dans le sous repertoire temp par rapport à ton script ?


et ensuite n'oublie pas d'échaper si dans une chaine commençant par " il y a des "


<html>
<head>
<title>test</title>
</head>
<body>
<h1>test</h1>
<p></p>
<form id="FormText" action="test.php" onsubmit="" method="post">
<table width="30%" class="ignorer">
<td align="center" class="ignorer"> selectionner:</td>
<?php
$array1=file("/tmp/file"); //a revoir 
echo "<select size=\"1\" name=\"var1\">";
if(sizeof($array1)>0{

	foreach($array1 as $cle=>$value){
		echo "<option value=\"".$value."\">".$value."</option>";
}

}
echo "</select>";
?>
</table>
</form>
</body>
</html>
0
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 2
20 nov. 2008 à 14:50
mon fichier s'appel bien file et il se situe bien dans /tmp
j'ai vérifier le reste de ma syntaxe et tous colle avec ton code

est ce qu'il n'y aurait pas un parametre dans le php.ini à modifier pour permettre la récupération des data du fichier txt?
je dis sa car je suis vraiment un newbie en php et que je me suis pris la tête a cause d'une histoire d'envoye de variable d'un formulaire à cause du paramêtre register_globals
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 nov. 2008 à 17:05
Hum pas très normal de nommer un fichier sans extension

sinon je te renvoi le script avec qqs echo de debugage, donnes moi le résultat

<html>
<head>
<title>test</title>
</head>
<body>
<h1>test</h1>
<p></p>
<form id="FormText" action="test.php" onsubmit="" method="post">
<table width="30%" class="ignorer">
<td align="center" class="ignorer"> selectionner:</td>
<?php
$file="/tmp/file";

if(is_file($file)){
	$array1=file("/tmp/file");
	echo "Nombre de lignes lues dans le fichier: ".sizeof($array1);
	echo "<select size=\"1\" name=\"var1\">";
	if(sizeof($array1)>0{

		foreach($array1 as $cle=>$value){
			echo "<option value=\"".$value."\">".$value."</option>";
	}

	}
	echo "</select>";
}else{
	echo "Acces au fichier ".$file." impossible !";
}	
?>
</table>
</form>
</body>
</html>
0
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 2
20 nov. 2008 à 17:25
Hum pas très normal de nommer un fichier sans extension
en fait je travaille avec linux /tmp/file et un fichier plat contenant que du text il ressemble a sa
cat /tmp/file
toto
tata
titi
tutu
j'ai injecter ton code et sa ne m'affiche rien du tous
j'ai essayer de renomer mon file en file.txt et sa n'a rien changer

j'ai voulus vérifier que se ne soit pas un probleme avec mon serveur apache
j'ai commenter de cette façon
<?php
$file="/tmp/file";
echo $file;
//if(is_file($file)){
// $array1=file("/tmp/file");
// echo "Nombre de lignes lues dans le fichier: ".sizeof($array1);
// echo "<select size=\"1\" name=\"var1\">";
// if(sizeof($array1)>0{

// foreach($array1 as $cle=>$value){
echo "<option value=\"".$value."\">".$value."</option>";
// }

// }
// echo "</select>";
//}else{
// echo "Acces au fichier ".$file." impossible !";
//}
?>

et la il m'affiche bien mon titre h1 , le path de mon file.txt et mon menu déroulant vide
c'est à s'arracher les cheveux

pour info je suis en php 4.3.9

en tous cas merci de ton aide
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 nov. 2008 à 17:51
Il me manquait une petite parenthèse au if (sizeof....


de ton côté ta structure de table n'éatait pas bonne il te manque des tr des td

et l'erreur php aurait dur sortir, chez moi j'ai fait l'essai en réel sur mon serveur Linux elle sortent, il faut que tu ailles dans le php.ini modidier la ligne

error_display -> ON

et relancer apache bien sur

<html>
<head>
<title>test</title>
</head>
<body>
<h1>test</h1>
<p></p>
<form id="FormText" action="test.php" onsubmit="" method="post">
<table width="30%" class="ignorer">
<tr>
<td align="center" class="ignorer"> selectionner:</td>
<td>
<?php
$file="tmp/file.txt";

if(is_file($file)){
	$array1=file($file);
	//echo "Nombre de lignes lues dans le fichier: ".sizeof($array1);
	echo "<select size=\"1\" name=\"var1\">";
	if(sizeof($array1)>0){

		foreach($array1 as $cle=>$value){
			echo "<option value=\"".$value."\">".$value."</option>";
	}

	}
	echo "</select>";
}else{
	echo "Acces au fichier ".$file." impossible !";
}	
?>
</td>
</tr>
</table>
</form>
</body>
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jerem1985 Messages postés 65 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 19 novembre 2009 2
21 nov. 2008 à 08:41
sa y'est sa marche nicquel

c'est vraix que mon tableaux était mal structuré mais sa pas sa qui bloquait
c'était juste la petite parenthese du if (du moins je suppose)
une fois cette petite parenthese ajouter sa marche nicquel

je te remercie vraiment pour ton aide précieuse
0