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 :

Envoie dans une base d'une valeur contenue dans une liste


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Envoie dans une base d'une valeur contenue dans une liste
    bonjour a tous,
    je vais vous exposer rapidement mon problème.
    j'ai adapté un existant qu'on m'a donné pour créer une liste déroulante qui se met a jour en fonction d'un autre champ
    on rentre un code postal et en cliquant à coté de la zone de texte une liste déroulante affiche toutes les villes correspondantes au cp rentré.
    cette petite fonction (qui est en JS et xml) ce trouve dans un formulaire que je doit ensuite enregistrer dans ma base de donnée. jusqu'ici tout marche mais à l'envoi dans la base j'obtient le message suivant :
    "Notice: Undefined index: Ville in D:\wamp\www\SiteSimon\new_ent.php on line 14"
    tout est enregistré dans la base sauf la ville.
    je pense que le problème est qu'avec le JS la liste n'est pas prise en compte et je ne vois pas comment y remédier

    voila le coté JS :
    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
        function interrogeXML(p_ville) {
     
            var villes = arbreXML.getElementsByTagName('Com_Nom');
            var cp = arbreXML.getElementsByTagName('Com_CodePostal');
            var str = "";
     
            str = '<select name="ville">';
     
            for (i = 0; i < cp.length; i++) {
    				uncp = cp.item(i).firstChild.data; //alert(donnees.length);
    				if (uncp.indexOf(p_ville.toUpperCase()) != -1) {
                        str += "<option>"+ villes.item(i).firstChild.data + "</option>"
    				}
              }
                str += "</select>";
                document.getElementById("villes").innerHTML = str;
        }
     
     
    var reqAjax = new XMLHttpRequest();
        reqAjax.open('GET', 'Commune.xml', false)
        reqAjax.send(null);
        var arbreXML = reqAjax.responseXML;
    le morceau du côté html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <TR>
    	<TD>CP de l'entreprise</TD>
    	<TD>
    	<input  type="text" name="CP" maxlength="5" onchange="interrogeXML(this.value);"></input>
    	</TD>
    </TR>
    <TR>
    	<TD>ville de l'entreprise</TD>
    	<TD>
    	<div id="villes" name="Ville"> </div>
    	</TD>
    </TR>
    et le php :
    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
    <?php
    //établissement de la connexion à la base de données
    include("connectBDD.php");
     
    //récupération des variables du formulaires
    $siret= $_POST["SIRET"];
    $nom= $_POST["Nom"];
    $naf= $_POST["NAF"];
    $ape= $_POST["APE"];
    $tel= $_POST["Tel"];
    $mail= $_POST["Mail"];
    $rue= $_POST["Rue"];
    $cp= $_POST["CP"];
    $ville= $_POST["Ville"];
    $type_lib= $_POST["ent_type"];
     
    if($type_lib=='client')
    	{
    		$type_code == 1;
    	}
    	else if($type_lib=='fournisseur')
    		{
    			$type_code == 2;
    		}
    	else if($type_lib=='partenaire')
    		{
    			$type_code == 3;
    		}
    	else if($type_lib=='prospect')
    		{
    		$type_code == 4;
    		}
     
    //variable contenant le code de la requête d'insertion
    $requete="insert into entreprise values ('$siret', '$nom', '$naf', '$ape', '$tel', '$mail', '$rue', '$ville', '$cp', '$type_lib');";
     
    //exécution de la requête d'insertion
    $resultat=mysql_query($requete) or die ("Erreur sur la requête :$requete");
    le xml est en piece jointe et zipé sinon il était trop lourd mais voici un extrait pour vous donné une idée de la chose :
    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
    <COMMUNE>
    <Com_ID>15714</Com_ID>
    <Com_Nom>ST DENIS LES BOURG</Com_Nom>
    <Com_CodePostal>01000</Com_CodePostal>
    </COMMUNE>
    <COMMUNE>
    <Com_ID>15707</Com_ID>
    <Com_Nom>BOURG EN BRESSE</Com_Nom>
    <Com_CodePostal>01000</Com_CodePostal>
    </COMMUNE>
    <COMMUNE>
    <Com_ID>15708</Com_ID>
    <Com_Nom>FRANCHELEINS</Com_Nom>
    <Com_CodePostal>01090</Com_CodePostal>
    </COMMUNE>
    je ne voudrais pas faire l'exigent mais mon stage ce fini vendredi donc si je pourrais avoir une réponse avant ça serait sympa
    sinon je ferais sans
    c'est surement un petit truc bête mais je suis loin d'être un pro et je ne peut pas le devenir pour les 3 jours qu'il me reste
    merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    bonjour,
    si tu regardes le code source de ton form en rendu html dans ton navigateur, tu t'apercevras que tu ne donnes pas de value à <option>.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="uneville">uneville</option>
    c'est tout simple à corriger.
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    o_O c'été bien une faute "à la con" ^^
    merci pour ça (j'aurai jamais trouvé cette erreur)
    par contre j'ai une petite question sur ta réponse. le "value=uneville" je le met dans le JS à la suite du <option c'est bien ça ?
    et je met "$ville= $_POST["uneville"];"
    dans le php ?

    c'est bien ça ou il faut faire autre chose et/ou rajouter quelque chose ?

    car j'ai essayé de mettre le value=uneville et le $post["uneville"] mais je reçoit toujours le meme message d'erreur

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    car j'ai essayé de mettre le value=uneville et le $post["uneville"] mais je reçoit toujours le meme message d'erreur
    c'est pas value='uneville' mais plutôt l'attribut name dans le select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <select name='uneville'>
    <option value='A'>1</option>
    </select>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $_POST['uneville'];
    ?>
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    parfait ça fonctionne (par contre je n'ai pas mis le "value" qui n'est, je pense, pas nécessaire).
    je vous remercie tout les deux pour votre réactivité et votre gentillesse.
    je garderais ce forum dans mes favoris au cas ou ^^

    bonne continuation a vous deux et à ce forum

    ps: je change le titre en rajoutant -[résolu]-

    ps2: ce code est à disposition de qui le souhaite

    encore merci.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    par contre je n'ai pas mis le "value" qui n'est, je pense, pas nécessaire
    tiens, c'est nouveau çà; va falloir que je révise mes cours.
    et quelle valeur tu obtiens pour la ville sélectionnée?
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    un nom de ville ^^
    j'ai testé et ça marche sans c'est pour ça que j'ai marqué ça et que j'ai rajouté le "je pense"

    donc si ça marche sans je me suis dit "pourquoi rajouter un truc alors que ça marche "

    réflexion d'utilisateur lambda

    qu'elle est l'utilité de le mettre ? car là je ne la voie pas

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    autant pour moi, j'ai dit une connerie; mais la bonne pratique consiste à passer une valeur à l'option car on peut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="UnEntier">désignation explicite</option>
    et on fait la requête sur un entier ce qui est beaucoup plus rapide que sur une chaine.
    Emmanuel
    --------------------------------------
    aucune réponse en message privé.
    les discussions doivent profiter à tous.

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    ok merci de la petite explication

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

Discussions similaires

  1. [Toutes versions] Lier une base Access 97 à des tables d'une base Access 2010
    Par jehhej dans le forum Modélisation
    Réponses: 2
    Dernier message: 03/01/2014, 15h48
  2. Réponses: 60
    Dernier message: 03/12/2010, 20h03
  3. [XL-2003] renommer une feuille par la valeur contenue dans une cellule
    Par mimilll dans le forum Excel
    Réponses: 2
    Dernier message: 20/06/2009, 00h06
  4. Réponses: 9
    Dernier message: 30/01/2008, 15h40
  5. Réponses: 1
    Dernier message: 08/06/2007, 00h10

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