Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 21/07/2011, 21h58   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 20
Points : 2
Points : 2
Par défaut Probleme explode et select formulaire

Bonjour à tous,

je ne sais pas d'où vient le problème...

Code de ma fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  function dropdown ($dropdownone, $dropdowntou)
  {
    foreach ($dropdownone as $safedatasry)
    {
      $safedatasry = str_replace ('', '', $safedatasry);
      echo '<option value=\'' . $safedatasry . '\'';
      if (trim ($safedatasry) == $dropdowntou)
      {
        echo ' selected=\'selected\'';
      }
 
      echo '>' . trim ($safedatasry) . '</option>';
    }
 
  }
Dans le select de mon formulaire j'ai bien les valeurs qui s'enregistrent dans ma BDD après l'envoi :

Code :
1
2
3
4
5
6
					<select class=\'widtha\' id=\'marque\' name=\'marque\' tabindex=\'12\'>
						<option value=\'\'>&nbsp;</option>
						';
  dropdown (explode ('
', $conf[marques]), $_POST[marque]);
  echo '					</select>
Mais en fait la valeur enregistré dans la BDD ne s'affiche pas par défaut dans le select et il faut recliquer sur la liste déroulante...
Pourtant je ne trouve aucune erreur.

Par contre quand la dernière valeur de la liste enregistré dans la BDD est sélectionnée, là j'ai bien l'affichage en arrivant sur la page... mais seulement sur la dernière valeur !

Je ne sais pas si je me suis bien fais comprendre...

Une idée ? Merci
magicpetro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h08   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Code php :
$safedatasry = str_replace ('', '', $safedatasry);
On remplace du vide par du vide ?

Tu ferrais mieux de regarder le code HTML généré, car pour moi ton script sélectionne toutes les entrées lorsque le paramètre $dropdowntou est vide (donc lorsque le formulaire n'est pas posté).

N.B : $_POST[marque], marque est-elle une constante ? Non je ne pense pas, donc il vaut mieux l'écrire $_POST['marque'] pour ne pas obtenir de drôles de résultats si un jour la constante venait à être créée.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h22   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
du coté de l'écriture du code, je ferais ça :
- séparer le code html du code php
- remplacer les \' par " (dans les balises html)
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
  function dropdown ($dropdownone, $dropdowntou)
  {
    foreach ($dropdownone as $safedatasry)
    {
      $safedatasry = str_replace ('', '', $safedatasry); // ??? à quoi sert cette ligne ???
?>	<option value="<?php echo $safedatasry; ?>"<?php echo (trim($safedatasry) == $dropdowntou)? ' selected="selected"' : ''; ?>><?php echo trim ($safedatasry); ?></option>
<?php
    }
  }
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
// ....
?>
			<select class="widtha" id="marque" name="marque" tabindex="12">
				<option value="">&nbsp;</option>
 
<?php dropdown (explode (' ', $conf['marques']), $_POST['marque']); ?>
			</select>
<?php
// ....
?>
Pour le reste, il faudrait nous préciser les valeurs de $conf['marques'] et $_POST['marque']
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 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 07h08.


 
 
 
 
Partenaires

Hébergement Web