foreach qui n'affiche pas toutes les valeurs de array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : foreach qui n'affiche pas toutes les valeurs de array

Re: foreach qui n'affiche pas toutes les valeurs de array

par macgawel » 14 janv. 2010, 10:12

Profites-en pour corriger ton HTML :
echo '<select name="pdf">'.$list_pdf.'</pdf>';
La balise fermante </pdf> n'existe pas en HTML (à ma connaissance) !

Re: foreach qui n'affiche pas toutes les valeurs de array

par JeanJean » 13 janv. 2010, 23:03

Encore une fois, merci. =D>

Il faudrait sans doute que j'aille m'acheter des yeux... #-o

Re: foreach qui n'affiche pas toutes les valeurs de array

par Ryle » 13 janv. 2010, 22:37

Dans ta liste d'options, tu as un espace entre le "value" et le "=", du coup, lorsque tu fais le replace, comme tu cherches une chaine sans espace, il ne la trouve pas et ne peut donc pas la remplacer...

Re: foreach qui n'affiche pas toutes les valeurs de array

par JeanJean » 13 janv. 2010, 16:34

Merci. ;)

Ca fonctionne maintenant. ^^

Cependant, je souhaite ajouter une fonction.

Si jamais on modifie une news, je souhaite que le champ qui s'affiche en premier sur la liste est celui qui à été préalablement choisis lors que la création de la news.

j'ai pense à ça :
		<?php
		$dossier = './pdf';
		$lecture = scandir($dossier);
		
		$selec = '-- SELECTIONNEZ --';
		if(isset($_GET['modifier_news'])){
			$selectioned = $news['pdf'];
			$lecture[] = $selectioned;
			$lecture[] = $selec;
		}
		else{
			$lecture[] = $selec;
		}
		$tab = array_slice($lecture,2);
		$renverse = array_reverse($tab);
		$unique = array_unique($renverse);	
		
		foreach($unique AS $valeur){
			$list_pdf .= '<option value ="'.$valeur.'">'.$valeur.'</option>';
		}
		if(isset($_GET['modifier_news'])){
			$list_pdf = str_replace('value="'.$news['pdf'].'"','value="'.$news['pdf'].'" selected="selected";',$list_pdf);
		}
		echo '<select name="pdf">'.$list_pdf.'</pdf>';
		?>	
Mais ça ne change strictement rien.

Si j'ajoute un . ici : $list_pdf .= str_replace('value="'.$news['pdf'].'"','value="'.$news['pdf'].'" selected="selected";',$list_pdf);

Je verrais toujours -- SELECTIONNEZ -- et quand je clique sur la liste, elle m'affiche deux fois le contenu du dossier. :s

Merci. ;)

Re: foreach qui n'affiche pas toutes les valeurs de array

par stopher » 13 janv. 2010, 15:48

Slt ,

tu as oublié le "." devant le égal pour concaténer
 $list_pdf .= '<option value="'.$valeur.'">'.$valeur.'</option>'; 
Ch.

foreach qui n'affiche pas toutes les valeurs de array

par JeanJean » 13 janv. 2010, 15:44

Bonjour,

J'ai réalisé un petit script :
<?php
$dossier = './pdf';
$lecture = scandir($dossier);

$selec = '-- SELECTIONNEZ --';
if(isset($_GET['modifier_news'])){
	$selectioned = $news['pdf'];
	$lecture[] = $selectioned;
	$lecture[] = $selec;
}
else{
	$lecture[] = $selec;
}
$tab = array_slice($lecture,2);
$renverse = array_reverse($tab);
$unique = array_unique($renverse);
foreach($unique AS $valeur){
	$list_pdf = '<option value="'.$valeur.'">'.$valeur.'</option>';
}
echo '<select name="pdf">'.$list_pdf.'</pdf>';
?>	
En faisait un print_r($unique); cela me renvoi ça :

Array ( [0] => -- SELECTIONNEZ -- [1] => recetteFromage1sf_ge.pdf [2] => SFParisMouf-degust-aperiSlowN1.pdf [3] => SFParisMouf-degust-From-vins26mars.pdf [4] => SFParisMouf-degust-10-12-2009.pdf [5] => PDF-SlowFood-vinsCorse.pdf )

Or la liste émise par le foreach me renvoi ça :

PDF-SlowFood-vinsCorse.pdf

Vous savez pourquoi ça ne me renvoi que la dernière valeur ? :s