Page 1 sur 1

Remplir un select depuis un fichier texte

Posté : 16 oct. 2012, 17:47
par InfoGeo
Bonjour !

Je suis entrain de réaliser un site web mais bon j'ai pas mal de difficulté ^^

J'ai un fichier excel qui contient des données comme des pays, des aires géographiques .... et ces données je les met dans un fichier texte sous cette forme:

ALBANIA
ALGERIA
ARGENTINA
AUSTRALIA
AUSTRIA
BAHRAIN
BANGLADESH
BELGIUM
BRAZIL
BULGARIA
CAMEROON
CANADA
etc.....

Et je voudrais maintenant remplir un select avec ces données, j'ai essayé ceci:
<div id="div_area" style="display:none;">		
			<select id="select_area">			
				<?php
					$f = fopen("datas/LArea.txt", "r");
					// Read line by line until end of file
					while (!feof($f)) {
						echo '<option value="'.fgets($f).'">'.fgets($f).'</option>';
					}
					fclose($f);					
				?>				
			</select>						
			<br/>				
		</div>

Mais rien ne s affiche dans le select .... :'(


je tiens a dire que j'ai meme essayé ca:
<div id="div_area" style="display:none;">		
			<select id="select_area">			
				<?php
                                    echo '<option value="test">test</option>';				
				?>				
			</select>						
			<br/>				
		</div>
Mais rien ne s affichait non plus alors bon ... je comprend pas trop la ^^


Donc j'espère que quelqu'un ici pourra m'éclairer parce que je sais vraiment pas quoi faire ... j ai essayé de trouver sur internet mais bon pour moi ca revient a ce que j ai fait ....

Help please ^^

Re: Remplir un select depuis un fichier texte

Posté : 16 oct. 2012, 19:29
par AB
Avec ce genre de fichier texte tu aurais avantage à utiliser la fonction file de php.
$tab_fich = file('datas/LArea.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Fais un print_r($tab_fich); pour contrôle pendant le développement.

Ensuite il reste plus qu'à lister ton tableau :
<?php
//récupération des données
$tab_fich = file('datas/LArea.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

//visualisation pour débuggage
print_r($tab_fich);

//contrôle du résultat
$tab_fich = isset($tab_fich) && is_array($tab_fich) ?  $tab_fich : array();

?>
<html>
...
<?php if(count($tab_fich) > 0)
{
foreach($tab_fich as $value)
echo '<option value="'.$value.'">'.$value.'</option>';
} ?>
...
</html>

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 09:10
par InfoGeo
Ca affiche '.$value.' dans le select :'(


Mais j'ai l'impression que j'ai un problème avec l'affichage de truc en php dans l'HTML ....

Ce serait possible que ce soit à cause du fait que j'utilise de l'ajax dans mon programme ? Ou du fait que j'utilise WampServer ? ou ?

voila ce que j'ai:
http://gyazo.com/f76f41292b6d24f718c4f43c6c48b8cc

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 11:42
par asf21
Bonjour InfoGeo.
Ton image est fort sympathique mais où se trouve le réel actif depuis lequel tu as fait une impression écran?
C'est ça qui pourrait nous intéresser, l'image ne peut être éditée! ;)
Dump un coup le résultat de ta page html et donnes nous la portion qui est en erreur, avec le source php stp.
Cdt.

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 12:00
par Mazarini
Vu l'affichage, tu as du mal recopier la ligne :
echo '<option value="'.$value.'">'.$value.'</option>';
Une confusion entre quote et double-quote ?

Pour contrôler ce qui est généré, tu peux regarder le source html de la page.

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 13:20
par InfoGeo
non aucune confusion je fais des copier coller mais j ai trouvé ou se situait mon problème ^^ en fait la page était index.html au lieu de index.php


Pour ceux que ca interesse voila ce que j'ai fait:
<div id="div_area" style="display:none;">
			<p>
			<select id="select_area">                      
				<?php
					$rows = file("datas/LArea.txt", FILE_SKIP_EMPTY_LINES);
					foreach($rows as $value){
				?>
						<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
				<?php
					}                                     
				?>                             
			</select>
			</p>
			<br/>                          
		</div>

		
		<div id="div_subarea" style="display:none;">
			<p>
			<select id="select_subarea">                      
				<?php
					$rows = file("datas/LSArea.txt", FILE_SKIP_EMPTY_LINES);
					foreach($rows as $value){
				?>
						<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
				<?php
					}                                     
				?>                             
			</select>
			</p>
			<br/>                          
		</div>	

		<div id="div_countryunit" style="display:none;">
			<p>
			<select id="select_countryunit">                      
				<?php
					$rows = file("datas/LCountryU.txt", FILE_SKIP_EMPTY_LINES);
					foreach($rows as $value){
				?>
						<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
				<?php
					}                                     
				?>                             
			</select>
			</p>
			<br/>                          
		</div>	

		<div id="div_country" style="display:none;">
			<p>
			<select id="select_country">                      
				<?php
					$rows = file("datas/LCountry.txt", FILE_SKIP_EMPTY_LINES);
					foreach($rows as $value){
				?>
						<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
				<?php
					}                                     
				?>                             
			</select>
			</p>
			<br/>                          
		</div>			


qui renvoies à ca:

[javascript]function select_sort (value) {
if (value == "area") {
document.getElementById("div_area").style.display = "";
document.getElementById("div_subarea").style.display = "none";
document.getElementById("div_country").style.display = "none";
document.getElementById("div_countryunit").style.display = "none";
}
if (value == "subarea") {
document.getElementById("div_area").style.display = "none";
document.getElementById("div_subarea").style.display = "";
document.getElementById("div_country").style.display = "none";
document.getElementById("div_countryunit").style.display = "none";
}
if (value == "country") {
document.getElementById("div_area").style.display = "none";
document.getElementById("div_subarea").style.display = "none";
document.getElementById("div_country").style.display = "";
document.getElementById("div_countryunit").style.display = "none";
}
if (value == "countryunit") {
document.getElementById("div_area").style.display = "none";
document.getElementById("div_subarea").style.display = "none";
document.getElementById("div_country").style.display = "none";
document.getElementById("div_countryunit").style.display = "";
}
if (value == "world") {
document.getElementById("div_area").style.display = "none";
document.getElementById("div_subarea").style.display = "none";
document.getElementById("div_country").style.display = "none";
document.getElementById("div_countryunit").style.display = "none";
}
}[/javascript]



merci d'avoir essayé de m'aider !


je ne sais pas comment on rend un sujet résolu ....

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 13:26
par asf21
Pour mes <option> à traiter sous php, j'ai toujours eu l'habitude d'écrire ainsi:
?>
<option value="<? echo $piece['virtuemart_product_id']?>">Pièce 1</option>
<? 
Ainsi j'évite la confusion des quote / double quote...


Edit:
Bien vu! Tu as posté avant moi! lol
Je crois que c'est le modo qui autorise le bouton RESOLU.

Re: Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 13:47
par InfoGeo
lol asf21, désolé en tt cas merci d avoir essayé de m aider c super sympa ! =)

Re: [RESOLU] Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 18:34
par asf21
Remercies AB, pas moi! ;)

Re: [RESOLU] Remplir un select depuis un fichier texte

Posté : 17 oct. 2012, 18:44
par InfoGeo
je vous remercie tous ^^