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 08/03/2011, 06h03   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Par défaut formulaire dynamique + création de champ + post = Gros Souci

Bonjour, je vais essayé de faire simple...
J'ai un formulaire dans lequel je veux rajouter le champ "image", mais suivant les besoins on pourra en ajouter un certain nombre cad "image1" , "image2", ... jusqu'à xx.
J'ai réussi avec un script java à créer autant de formulaire que je veux
Le problème viens dans mon codage php pour la création des champs dans la table de ma bdd et l'insertion des données dans celle-ci...
Si quelqu'un peut m'aider, Merciiiiiiiiiiiiiiiiiiiiiii
voici mon code :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
<script type="text/javascript">
function prout()
{
var sel = document.forms[0].pouet;
nbChamps = sel.options[sel.selectedIndex].value;
document.getElementById("champs" ).innerHTML = "";
for(i=0; i<nbChamps; i++)
{
document.getElementById("champs" ).innerHTML = document.getElementById("champs" ).innerHTML+'<input type="text" id="image" name="image'+i+'" />'; 
}
}
</script>
</head>
 
<body>
<form action="">
<select name="pouet" onChange="prout()">
<option disabled="disabled">Choisissez une valeur</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
<div id="champs"></div>
 
 
<br> <input type="submit" name="valider" value="ENVOYER"/>
 </TD></P></FIELDSET>
 <br>
 </div>
</div>
	<?php
        if (isset ($_POST['valider'])){
 
            $site=$_POST['site'];
            $type=$_POST['type'];
            $date=$_POST['date'];
			$heure=$_POST['heure'];
			$police=$_POST['police'];
			$pompier=$_POST['pompier'];
			$securite=$_POST['securite'];
			$operateur=$_POST['operateur'];
			$recit=$_POST['recit'];
 
 
 
            connectclient();
 	$sql=array();              
for($i=0;$i<50;$i++) 
{$sql[$i]=$matches1[0][$i] 
$sql = "ALTER TABLE rapport ADD ".$image.[$i]." TEXT NOT NULL ";
            $sql = 'INSERT INTO rapport VALUES("","'.$site.'","'.$date.'","'.$heure.'","'.$type.'","'.$police.'","'.$pompier.'","'.$securite.'","'.$operateur.'","'.$recit.'")'; 
 
 
 
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
            mysql_close();
        }
?>
fred2b06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 10h42   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
A la place de création d'un champ pour chaque image concatène les noms des images dans un seul champs.
Si tu veux faire avec ta solution je crois que l'insert ecrase l'alter.
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2011, 10h25   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Désolé pour ma réponse tardive.

Pour m'on utilisation de ma bdd la concatène ne m'arrange pas trop.

Là je suis vraiment bloqué et j'aimerais vraiment trouver une solution et je pense que j'en suis pas loin et qu'il doit juste avoir une erreur de synthaxe, ...

en gros j'ai un formulaire java qui me crée un champ+n, et je souhaite que celui-ci se crée aussi dans ma Table sql et insérer les données via le formulaire
Merci
fred2b06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 13h28   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 800
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 : 800
Points : 1 512
Points : 1 512
Dans tous les cas ton actuel code ne peut aller bien loin.
Tu créés un champs qui ne peut être vide. Que se passe-t-il pour les anciens rapports insérés qui ne contenaient pas autant de champs ?

La solution au problème serait, comme l'a indiqué m4riachi, de concaténer tes images.

Code :
1
2
3
4
5
6
7
8
9
$images = "";
$i = 0;
while( isSet($_POST['image' . $i]) )
{
  if( !empty($images) )
    $images .= ";";
  $images .= $_POST['image' . $i];
  $i++;
}
Ainsi tu as une chaîne de caractères contenant toutes les valeurs de tes champs séparés par des point-virgules.
Un champs texte (dans le cas de beaucoup d'images) ou un varchar et le tour est joué, pas de modification intempestives de structure.
transgohan 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 16h15.


 
 
 
 
Partenaires

Hébergement Web