Problème recupération de valeur PHP

Résolu/Fermé
z.abdelhakim Messages postés 3 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008 - 4 juin 2008 à 10:54
 z.abdelhakim - 4 juin 2008 à 21:38
Bonjour,

je suis débutant en programmation et
j'ai un gros problème, j'ai réaliser un script me permettant de donner son avis sur différentes marques
en fonction de certains critère figurant dans ma base de donné.
les zones de saisie sont créées dynamiquement à l'aide d'un boucle (WHILE) pour éviter de modifier le script
si de nouveau critères était ajouté a la base de données.

mon problème est le suivant:
- les noms de mes zones des textes sont des variables ( name=$moy / name=$com / name=$id)
et je ne sais pas comment faire pour récupérer les valeurs de ces zones de textes ($_POST['nomduchamp']...)
pour pouvoir les envoyer dans la BDD.

voici mon script permettant de donner son avis. Merci d'avance.


<html>
<head>
<!-- script permettant de calculer la moyenne des 4champs critères pour restituer
le resultat dans le champs "total" -->

<script type='text/javascript'>
function somme()
{
var note1 = isNaN(document.getElementById('1').value) ? 0 : document.getElementById('1').value;
var note2 = isNaN(document.getElementById('2').value) ? 0 : document.getElementById('2').value;
var note3 = isNaN(document.getElementById('3').value) ? 0 : document.getElementById('3').value;
var note4 = isNaN(document.getElementById('4').value) ? 0 : document.getElementById('4').value;
var total = (Number(note1) + Number(note2) + Number(note3)+ Number(note4))/4;

document.getElementById('total').value = total;
}
</script>
</head>
<body>

<?php
include('connexion.php');
$idfourn=$_REQUEST[''];
$req1="select * from criteres";
$res1=mysql_query($req1);
$logo="select logo from fournisseur where idfournisseur=1"; // la condition 'idfournisseu=1' a été mise en place pour réaliser un test
$com=a;
$moy=0;
$id=aa;
?>

<form name="avis" action="enregavis.php" method="POST" >
<table border="2">
<TR><td>votre pseudo:<input type="text" name="pseudo" id="pseudo" /><td/><TR/>
<TR align='center'>
<TD><?php echo "<img src='$logo'/>"?></TD>
<TD><TEXTAREA name="avis_maitre" rows="5" COLS="50"></TEXTAREA></TD>
<TD><input type="text" name="total" id="total" size="1"/></TD>
</TR>

<?php

// cette partie permet de créer des zone de saisie en fonction du nombre de critère
// que contient la base de donnée pour éviter de modifier le script si un nouveau critère est ajouté.

while($tab=mysql_fetch_array($res1))
{
++$moy;
echo ("<div class='criteres'>
<tr align='center'>
<td>".$tab["libelle"]."</a></td>
<td><TEXTAREA name=$com rows='2' COLS='50'></TEXTAREA></td>
<td><input type='text' name=$moy id=$moy size='1' onBlur='somme()'/></td>
<td><input type='hidden' name=$id value='".$tab['idcriteres']."' /></td>
</tr></div>");
++$id;
++$com;
}
?>
</table>
<input type="submit" value="valider votre avis">
</form>
</body>
</html>
A voir également:

3 réponses

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
4 juin 2008 à 11:29
Salut,

pour t'aider a connaitre le nom des clés d'un tableau (ton tableau de $_POST dans ton cas) tu a la fonction array_keys

$cles = array_keys($_POST);

dans $cles tu aura donc un tableau contenant le nom des valeurs de ton formulaire exemple

un champ qui aurai ce nom :

<input type="text" name="truc">

coté php

<?PHP

$cles = array_keys($_POST);
echo $cles[0]; // affiche truc


?>
0
z.abdelhakim Messages postés 3 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 11:35
je vais essayer et je re-post dès que possible.
merci
0
z.abdelhakim Messages postés 3 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 14:23
soit je n'arrive pas bien a utilisé array_keys ou alors,
je n'ai pas été clair lors de l'explication de mon problème, je recommence.

voici ce que je veux faire:
récupérer les valeurs des zones de saisies dynamiques dont les pour lesquels name=$com par exemple

<form name="avis" action="enregavis.php" method="POST" >
<table>
<?php
while($tab=mysql_fetch_array($res1))
{
++$moy;
echo ("<div class='criteres'>
<tr align='center'>
<td>".$tab["libelle"]."</a></td>
<td><TEXTAREA name=$com rows='2' COLS='50'></TEXTAREA></td>
<td><input type='text' name=$moy id=$moy size='1' onBlur='somme()'/></td>
<td><input type='hidden' name=$id value='".$tab['idcriteres']."' /></td>
</tr></div>");
++$id;
++$com;
}
?>
</table>
<input type="submit" value="valider votre avis">
</form>

lorsque que je valide, je suis envoyé vers le fichier enregavis.php, normalement si "name" avait pour valeur une chaine de caractère, il n'y aurai pas u de problème.
Mais dans le script si dessus "name" a pour valeur "une variable".

comment dois-je m'y prendre pour pour obtenir la valeur de la zone de saisie dans la page enregavis.php,
lorsque name=$com par exemple?

Merci
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206 > z.abdelhakim Messages postés 3 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 4 juin 2008
4 juin 2008 à 19:56
voici une petite boucle qui t'affiche le nom de l'input ainsi que sa valeur quand justement on ne connais pas le nom

<?PHP

$cles = array_keys($_POST); //on recupere la liste des clé (les name des input)
$valeurs = array_values($_POST); //on recupere la liste des valeurs (value des input)

for ($i=0; $i<count($_POST); $i++) //Pour i de 0 a la fin du tableau de $_POST
{
	echo "<br><br>L'input de nom ".$cles[$i]." a pour valeur ".$valeurs[$i]."<br>";
}

?>


a partir de ça tu a une bonne base pour pouvoir construire tes requêtes dynamiquement
0
z.abdelhakim
4 juin 2008 à 21:38
merci, j' y suis finalement arrivé
0