IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire dynamique + création de champ + post = Gros Souci


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Points : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
            }
    ?>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    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.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    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

  4. #4
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. PHP : Formulaire dynamique, ajout de champ
    Par Invité dans le forum Langage
    Réponses: 9
    Dernier message: 07/05/2014, 09h08
  2. Formulaire dynamique (nombre de champs)
    Par Tidus159 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 13/05/2011, 10h07
  3. Création de champ dynamique dans un formulaire
    Par alex75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 16h00
  4. nom d'un champs de formulaire dynamique
    Par wil4linux dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 17h42
  5. Réponses: 4
    Dernier message: 13/09/2005, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo