Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 23/10/2007, 11h49   #1
Membre du Club
 
Inscription : octobre 2007
Messages : 196
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 196
Points : 48
Points : 48
Par défaut Formulaire alimenté par une base de données

Salut,

J'ai une page devis_ajax.php et une page process_ajax.

process_ajax permet de créer un formulaire à partir d'une base de données:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  elseif($row["type"]=="choix")
 {
    echo'   <p ><label><b><u>'.$text_label.' :</u></b></label><br>';
            $i=strlen($contenu);
            $j=1;
            while($i>0)
 {
            $j=strcspn($contenu,'&');
            $h=strtok($contenu,'&&');
            $contenu=str_ireplace($h.'&&','',$contenu);
            $h=htmlentities($h,ENT_QUOTES);
 
 
 
    echo'<input type="checkbox" name="'.$contenu.'" value='.$h.'/>'.$h.'<br>';
    $i=$i-$j-2;
 
}
echo'</p>';
pour un des types possible du formulaire.

Le formulaire une fois crée s'affiche grâce à devis_ajax.php:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<form method="post" action="traitement_devis.php">
<fieldset style="width: 500px">
<legend><b>DEVIS : REPONSE DANS LES 24 HEURES</b></legend>
<label><b><u>Situation de votre entreprise</u></b></label>
<select name='types_devis' id='types_devis' onchange='go()'>
<option value='-1'>Aucun</option>
<?
mysql_connect("localhost","root","èç&-éà");
mysql_select_db("base_test");
$res = mysql_query("SELECT * FROM types_devis ORDER BY type_devis");
while($row = mysql_fetch_assoc($res)){
							echo "<option value='".$row["id_type_devis"]."'>".$row["type_devis"]."</option>";
}
?>
</select>
<div id='devis' >
</div>
 
</fieldset>
 
 
<input type="submit" value="Envoyer"  />
<input type="reset" value="Recommencer" />
		</form>
PROBLEME:

Je n'arrive pas à récupérer les variables de mon formulaire

merci par avance
claire
claire13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 13h14   #2
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

$types_devis = $_POST['types_devis'];

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 14h13   #3
Membre du Club
 
Inscription : octobre 2007
Messages : 196
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 196
Points : 48
Points : 48
merci mais ce n'est pas la variable que je veux récupérer.

Dans devis_ajax j'ai:
Dans ce bloc, grâce à ajax, je récupère un formulaire généré par process_devis.php (cf une partie du code au dessus).

ce formulaire est variable car alimenté par une base de donnée.

Je ne sais pas comment récupérer les valeurs de mon formulaire car le name de chaque input est aussi variable:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo'   <p ><label><b><u>'.$text_label.' :</u></b></label><br>';
            $i=strlen($contenu);
            $j=1;
            while($i>0)
 {
            $j=strcspn($contenu,'&');
            $h=strtok($contenu,'&&');
            $contenu=str_ireplace($h.'&&','',$contenu);
            $h=htmlentities($h,ENT_QUOTES);
 
 
 
    echo'<input type="checkbox" name="'.$contenu.'[]" value='.$h.'/>'.$h.'<br>';
    $i=$i-$j-2;
Comme tu le vois, c'est situé dans une boucle.
comment faire pour récupérer à chaque fois une variable avec un nom différent et voire si la personne a coché la case.

J'espère que mon problème est plus clair.
merci de m'aider
claire
claire13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 15h36   #4
Membre du Club
 
Inscription : octobre 2007
Messages : 196
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 196
Points : 48
Points : 48
Par défaut Re:

Bon j'ai essayé un système de tableau mais pas trop au point:

Dans mon traitement de mon formulaire POST:
Code :
1
2
3
4
5
6
7
8
9
10
 
$tableau=array_values($_POST);
echo "pour i=0: ".$tableau[0]."<br>";
echo "pour i=1: ".$tableau[1]."<br>";
echo "pour i=2: ".$tableau[2]."<br>";
echo "pour i=3: ".$tableau[3]."<br>";
echo "pour i=4: ".$tableau[4]."<br>";
echo "pour i=5: ".$tableau[5]."<br>";
echo "pour i=6: ".$tableau[6]."<br>";
echo "pour i=7: ".$tableau[7]."<br>";
Je ferais une boucle plus tard...
il s'affiche bien certaines de mes valeurs entrées dans mon formulaire.
Mais je n'arrive pas à comprendre comment les valeurs sont rangées, pourquoi les valeurs n'apparaissent pas en entier et pourquoi certaines ont disparues?????

merci
claire
claire13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 18h47   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Je ne sais pas si ça va résoudre ton problème, mais pense à mettre des quotes autour de ta value dans ton input, ça te permettra d'éviter les problèmes du genre "on ne récupère que le premier mot d'une phrase avec des espaces"
Code :
  echo'<input type="checkbox" name="'.$contenu.'[]" value="'.$h.'"/>'.$h.'<br>';
Pour voir le contenu de ta variable $_POST, tu as la fonction print_r qui t'affiche tout (un peu en vrac :
Code :
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
Et en ce qui concerne ton problème précis, je dois avouer que je n'ai pas vraiment compris ce que tu essayais de faire
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 10h31   #6
Membre du Club
 
Inscription : octobre 2007
Messages : 196
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 196
Points : 48
Points : 48
Merci beaucoup pour ta réponse mais j'ai préféré refaire tout en simplifiant.
Donc tout va bien (j'ai fait un formulaire simple (pas alimenté par une base))
donc plus de soucis!!!

a vouloir faire des trucs perfectionnés on s'y perd!!!

merci encore et à plus!!!
claire
claire13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h03.


 
 
 
 
Partenaires

Hébergement Web