Vous n'êtes pas identifié(e).
Bonjour,
je voudrais pouvoir recupérer la valeur de l'attribut name de l'input du formulaire que j'ai fait mais je n'y arrive pas. mon code est celui-ci
quand je fais ceci pour recupérer le contenu de la liste deroulante selectionné ou si je fais echo la variable $annees=$_POST['annees'] je n'ai rien.
quand cette liste deroulante n'est pas dynamique je le fais aisément mais là je ne comprends pas pour quoi ça ne donne pas.
Merci
Hors ligne
Bonjour,
On va essayer de faire quelques suppositions, même si cela n'est pas facile avec juste ce bout de code.
1/ Le formulaire est t'il bien en POST ? si il est en GET ou que ce n'est pas spécifié (ce qui le met en GET), cela n'alimente pas le tableau $_POST
2/ Le bouton de soumissions du formulaire est il bien dans le bon formulaire ? Si il y a plusieurs formulaires dans une page, chaque bouton de soumission ne se rapporte qu'au formulaire dans lequel il est , et ne sont donc transmis que les input de ce formulaire.
3/ Je pense qu'il y a un souci au niveau de l'utilisation du $selected, on ne sait pas comment il est défini, et surtout il est remis a zéro dès la première occurence de la boucle, donc il ne peut être efficace, eventuellement, que sur 1920.
Cela donne quelques pistes de recherches, même si le point 3 n'a normalement rien a voir avec l'absence de cette valeur.
@+
ManicoW
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
Merci de m'aider,
1 - le formulaire est en post
2- le bouton de soumission est dans le formulaire
3- le $selected est effectivement mis à vide. au depart aussi il est à vide.
je te poste tout mon code pour que tu comprennes mieux ma logique
<?php
include("fonctions.connect.php");
echo "<select name='annees' >";
$selected='';
for($i=1920; $i<=2009; $i++)
{
// Affichage de la ligne
echo "<option value='". $i."' ".$selected.">".$i." </option >";
// Remise à zéro de $selected
$selected='';
}
echo "</select>";
$an=isset($_POST['annees']);
echo "$an";
?>
</form>
<?php
// Si une recherche a été effectuée (bouton "Rechercher" cliqué) :
if (isset($_POST['recherche'])) {
$connect_db = connect();
// Recherche des étudiants dans la base de données
// début de construction de la requête : par défaut, on sélectionne tous les étudiants
$requete = "SELECT nom, prenom FROM etudiant ";
// éventuelle restriction de la recherche selon le nom de l'étudiant saisi
// taille de la selection
if (!empty($_POST['nom'])) {
$nom = mysql_real_escape_string($_POST['nom']);
$requete .= "WHERE nom = '$nom' ";
}
// fin de construction de la requête : classement des résultats
// par ordre alphabétique des noms, puis des prénoms
$requete .= "ORDER BY nom, prenom ;";
// exécution de la requête sur la base de données
$etudiants = mysql_query($requete)
or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
// Affichage des étudiants trouvés
echo '<h2>Résultat</h2>';
$etudiant = mysql_fetch_array($etudiants);
// cas où la recherche n'a donné aucun résultat
if (!$etudiant)
echo "<p>Aucun étudiant ne correspond à votre recherche.</p>";
// autre cas : il y a au moins un étudiant à afficher
else
// écriture d'un paragraphe par étudiant trouvé
do/*
echo "<p>".htmlspecialchars(strtoupper($etudiant['nom']))." "
.htmlspecialchars($etudiant['prenom'])." </p>\n";*/
{$lib_nom=htmlspecialchars(strtoupper($etudiant['nom']))." ".$etudiant['prenom'];
?>
<a href="fiche_etudiant.php?fiche=<?php echo "$lib_nom";?>"><?php echo $lib_nom; ?></a><br>
<?php
}
while ($etudiant = mysql_fetch_array($etudiants));
close();
}
?>
</body>
</html>
voilà merci
Dernière modification par valmelissa (15-11-2012 12:28:36)
Hors ligne
si au moins dans mon echo il m'affichait 1920 qui est ici la valeur par defaut mais non il m'affiche le nombre 1. je sais pas pourquoi.
Hors ligne
Re,
C'est tout a fait logique, quand on a tout le code. En effet, l'affectation de $an se fait tel que ci dessous :
$an prend donc la valeur retournée par la fonction isset.
D'après le manuel de php, je cite "Retourne TRUE si var existe et a une valeur autre que NULL, FALSE sinon."
L'interprétation de TRUE par php étant 1, il est logique que $an soit égal a 1 en utilisant ce code.
Un bon code pour ce traitement serait plutot quelque chose comme
Ce qui peut aussi s'écrire, en mode raccourci, et le code ressemble d'ailleurs a une mauvais compréhension de cette syntaxe :
C'est appelé l'opérateur ternaire, documenté ici : http://php.net/manual/fr/language.opera … arison.php (a la section opérateur ternaire).
@+
Manicow
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
Merci beaucoup j'ai compris. Du coup j'ai corrigé mon erreur et ça donne. merci.
Hors ligne