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

PHP & Base de données Discussion :

Un champ dans le formulaire mais plusieurs enregistrements à insérer [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut Un champ dans le formulaire mais plusieurs enregistrements à insérer
    Bonjour tout le monde, j'ai encore besoin de vos avis...

    En effet, dans mon interface utilisateur, je souhaite laisser à l'utilisateur d'insérer de nouveaux livres dans la base de données via le formulaire de saisie.

    La question que je me pose actuellement, c'est concernant les auteurs des livres. J'ai une table qui regroupe mes auteurs. On connait pas le nombre des auteurs à l'avance mais on sait que il est rarement seul. De point de vue utilisateur, j'ai pensé à laisser une case ou l'utilisateur peut saisir le nombre des auteurs en total et ensuite faire une boucle sur cette saisie qui permettra de proposer le nombre nécessaire des champs pour saisir tous les auteurs du même livre.

    Ma pauvre expérience en formulaires PHP et les IHM me fait douter de mon choix...
    Si une âme charitable pouvait me chuchoter comment je pourrais saisir plusieurs auteurs pour un même livre dans un formulaire PHP, je serai reconnaissante.

    Cordialement,
    Nooby.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    Tu peut utiliser un select multiple qui contient tout tes auteurs, et tu explique à tes utilisateurs qu'ils peuvent en sélectionner plusieurs en maintenant le bouton Controle(Ctrl) enfoncé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <select name='auteur[]' size='10' multiple='multiple'>
    <option value='auteur1'>auteur1</option>
    <option value='auteur2'>auteur2</option>
    ...
    </select>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Merci de ta réponse Numew.
    Mais je pense que je m'exprime mal.
    En fait, ma table "auteur" ne contient que les auteurs déjà saisis. L'utilisateur ajoute de nouveaux auteurs en saisissant le nom et le prénom au clavier. Maintenant avec un seul auteur tout se passe bien dans mon formulaire mais si j'ai un livre qui est écrit par 5 auteurs. Je ne peux pas ajouter mes autres 4 auteurs dans ma base avec mon interface actuel.

    En utilisant ta réponse Numew, je pourrais éventuellement faire une saisie d'abord des auteurs dans un formulaire à part et ensuite dans le formulaire proposer une sélection multiple des auteurs. Il me semble que la tache pour l'utilisateur devient un peu compliquée dans ce cas. Il serait souhaitable que l'utilisateur puisse faire la saisie d'un seul coup en prenant les données telles qu'elles se présentent en tenant un livre entre les mains (titre, auteur(s), année d'édition...etc).


    Cordialement,
    Nooby.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Deux idées :
    - soit plusieurs champs (éventuellement en jouant avec javascript pour faire apparaitre les champs en cliquant sur un bouton +) à récupérer dans un tableau par exemple.
    - soit un seul champ et demander à ton utilisateur de séparer les différents auteurs par un caractère précis (un point virgule par exemple) et à l'arrivée décomposer le champ à partir des points virgules.

    Dans les deux cas, tu peux insérer dans ta table ensuite par une boucle...
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Bonjour,
    J'essaye de suivre ta 2ème idée Celira, avec "explode".

    Merci,

    Cordialement,
    Nooby

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Je vous poste mon code, si jamais ça peut aider quelqu'un.


    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
     
    $id_liste=explode(';',$_POST['auteur']);
    foreach ($id_liste as $id)
    {
     
                  list($nom, $prenom) = explode(",", $id);
    					echo $nom; 
    					echo $prenom; 
    					$sql2 = 'INSERT INTO `auteur` (`numAuteur`, `nomAuteur`, `prenomAuteur`, `numTypeAuteur`) VALUES (NULL, \''
    					. mysql_real_escape_string($nom)
    					. '\', \''
    					. mysql_real_escape_string($prenom)
    					. '\', NULL);';
    					mysql_query($sql2);	
           }
    Dans $id_liste on récupère les valeurs séparées par une virgule et ensuite pour chaque valeur d'une $id_liste on récupère le nom et le prénom de l'auteur séparés cette fois par une virgule.

    C'ets simple mais ça marche !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Déplacer des champs dans un formulaire, mais aussi au dessus des images
    Par CrasherSEP dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/08/2011, 11h59
  2. [AJAX] Auto completion - plusieurs champs dans un formulaire
    Par etco1 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/09/2007, 17h36
  3. Réponses: 6
    Dernier message: 30/04/2007, 23h36
  4. Réponses: 3
    Dernier message: 24/04/2007, 15h44
  5. Réponses: 1
    Dernier message: 04/09/2006, 16h48

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