Problème recupération de valeur PHP
Résolu
z.abdelhakim
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
z.abdelhakim -
z.abdelhakim -
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>
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:
- Problème recupération de valeur PHP
- Convertisseur récupération de texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- Impossible de récupérer mon compte gmail - Guide
3 réponses
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
?>
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
?>
je vais essayer et je re-post dès que possible.
merci
merci
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
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
voici une petite boucle qui t'affiche le nom de l'input ainsi que sa valeur quand justement on ne connais pas le nom
a partir de ça tu a une bonne base pour pouvoir construire tes requêtes dynamiquement
<?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