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 :

Sauvegarde + choix entre 2 actions


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut Sauvegarde + choix entre 2 actions
    Bonjour à tous,

    je continue mes tests pour trouver les erreurs de mon script et j'en ai trouvé une ! Je ne sais pas trop si c'est une erreur ou pas, néanmoins il ne se passe rien.
    Situation :
    L'utilisateur remplit les champs, puis clique sur OK pour passer à la page suivante.
    Le script s'arrête (sans raison ?) à la page situation geographique.
    Je vous met le code de la page :
    Code php : 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
     
    <?php
    include'haut.php';
    include'fonction.php';
    ?>
    <form name="situationGeographique" method="post" action="panneaux.php">
    		Entrez le nom de votre installation : <input type="text" name="nom"/> <br/>
            Entrez l'adresse pr&eacutecise de l'installation : <input type="text" name="adresse"/><br/>
    		<select name="ville" size="1">
    		<option selected value=1>Erstein</option>
    		<option selected value=2>Krafft</option>
    		<option selected value=3>Gerstheim</option>
    		<option selected value=4>Daubensand</option>
    		<option selected value=5>Obenheim</option>
    		<option selected value=6>Uttenheim</option>
    		<option selected value=7>Bolsenheim</option>
    		<option selected value=8>Schaeffersheim</option>
    		<option selected value=9>Niedernai</option>
    		<option selected value=10>Meisratzheim</option>
    		<option selected value=11>Krautergersheim</option>
    		<option selected value=12>Limersheim</option>
    		<option selected value=13>Nordhouse</option>
    		<option selected value=14>Hipsheim</option>
    		<option selected value=15>Hindisheim</option>
    		</select>
    		Entrez le code postal correspondant : <input type="text" name="codePostal"/><br/>
    		Saisissez la date pr&eacutevisible d'entr&eacutee en service de l'installation : <input type="text" name="date"/><br/>
    		<input type="button" name="valider" value="OK" onCLick="controle('situationGeographique')"/><input type="reset" value = "Annuler"/></br>
    </form>
    <?php
    		$nom = $_POST['nom'];
            $prenom = $_POST['prenom'];
            $entreprise = $_POST['repEntreprise'];
            $adresse = $_POST['adresseProprietaire'];
            $commune = $_POST['communeProprietaire'];
            $code_postal = $_POST['codePostalProprietaire'];
            $telephone = $_POST['numTelFixe'];
    		$mandataire = $_POST['Mandataire'];
    		//On se connecte
            connectContratGlobal(); 
            //On prépare la commande sql d'insertion
            $sql = "INSERT INTO proprietaire VALUES('','".$nom."','".$prenom."','".$entreprise."','".$adresse."','".$commune."','".$code_postal."','".$telephone."','".$mandataire."')";
            /*on lance la commande (mysql_query) et au cas où,
            on rédige un petit message d'erreur si la requète ne passe pas (or die) 
            (Message qui intègrera les causes d'erreur sql)*/
            //mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
            // on ferme la connexion
    		echo $sql;
            //mysql_close();
    include"bas.php";
    ?>
    Le code de la page appellante :
    Code php : 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
     
    <?php
    include "haut.php";
    include "fonction.php";
    ?>
    <form name="proprietaire" method="post" action="situationGeographique.php">
    		Entrez votre nom : <input type="text" name="nom"/> <br/>
            Entrez votre prenom : <input type="text" name="prenom"/><br/>
    		ou la raison sociale de votre entreprise (si vous &ecirctes une entreprise) : <input type="text" name="repEntreprise"/><br/>
    		Entrez votre adresse : <input type="text" name="adresseProprietaire"/><br/>
    		Entrez le nom de votre commune : <input type="text" name="communeProprietaire"/><br/>
    		Entrez votre code postal : <input type="text" name="codePostalProprietaire"/><br/>
    		Entrez votre num&eacutero de t&eacutel&eacutephone fixe : <input type="text" name="numTelFixe"/><br/>
    		Entrez le nom du mandataire : <input type="text" name="Mandataire"/></br>
    		<input type="button" name="valider" value="OK" onClick="controle('proprietaire')"/><input type="reset" value = "Annuler"/></br>
    </form>
    <?php
    		$nom = $_POST['nom'];
            $prenom = $_POST['prenom'];
            $entreprise = $_POST['repEntreprise'];
            $adresse = $_POST['adresseClient'];
            $commune = $_POST['communeClient'];
            $code_postal = $_POST['codePostalClient'];
            $telephone = $_POST['numTelFixe'];
            $portable = $_POST['numTelPort'];
            $mail = $_POST['mailClient'];
            $interlocuteur = $_POST['nomInterlocuteur'];
            $puissance = $_POST['puissance'];
            $exploitation = $_POST['exploitation'];
            //On se connecte
            connectContratGlobal(); 
            //On prépare la commande sql d'insertion
            $sql = "INSERT INTO client VALUES('','".$puissance."','".$nom."','".$prenom."','".$entreprise."','".$adresse."','".$commune."','".$code_postal."','".$telephone."','".$portable."','".$mail."','".$interlocuteur."','".$exploitation."')";
            /*on lance la commande (mysql_query) et au cas où,
            on rédige un petit message d'erreur si la requète ne passe pas (or die) 
            (Message qui intègrera les causes d'erreur sql)*/
           // mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
            // on ferme la connexion
    		echo $sql;
            //mysql_close();
     
    include"bas.php";
    ?>
    et le code de la page appellée par situationGeographique :
    Code php : 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
     
    <?php
    include'haut.php';
    include'fonction.php';
    ?>
    <form name="panneaux" method="post" action="onduleurs.php">
    	Saisissez la surface de vos panneaux : <input type="text" name="surface"/></br>
    	Saisissez la puissance de votre production (en W crête) : <input type="text" name="puissance"/></br>
    	<p>
    	Conform&eacutement au d&eacutecret du 23 avril 2008, la puissance maximum "PMax" de raccordement sur un r&eacuteseau de distribution</br>
    	basse tension(BT) est limit&eacutee à 250kVA. Aucune d&eacuterogation n'est accord&eacutee par la loi. En cons&eacutequence, toute augmentation</br>
    	de puissance du site qui ferait d&eacutepasser le seuil de 250kVA imposera la cr&eacuteation d'un poste client HTA/BT, avec un</br>
    	raccordement sur le r&eacuteseau de distribution HTA.
    	</p>
    	<input type="button" name="valider" value="OK" onClick="controle('panneaux')"/><input type="reset" value = "Annuler"/></br>
    </form>
    <?php
    		$nom = $_POST['nom'];
    		$adresse = $_POST['adresse'];
    		$ville = $_POST['ville'];
    		$codePostal = $_POST['codePostal'];
    		$date = $_POST['date'];
    		//On se connecte
    		connectContratGlobal();
    		//On prépare la commande sql d'insertion
    		$sql = 'INSERT INTO situationgeograpique VALUES("","'.$nom.'","'.$adresse.'","'.$ville.'","'.$codePostal.'","'.$date.'")';
    		/*on lance la commande (mysql_query) et au cas où, 
    		on rédige un petit message d'erreur si la requête ne passe pas (or die) 
    		(Message qui intègrera les causes d'erreur sql)*/
    		//mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());    
    		// on ferme la connexion
    		echo $sql;
    		//mysql_close();
    		include'bas.php';
    ?>

    je vous mets également la fonction onClick pour situationGeographique :
    Code js : 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
     
    else if (form == 'situationGeographique'){
    				var cp = document.situationGeogrpahique.codePostal.value;
    				var date = document.situationGeographique.date.value;
    				if ((cp < 1000) || (cp >= 100000)) 
    				{
    					alert("code postal erroné");
    				}
    					if ((date <01/01/2010) || (date >= 31/12/2050))
    					{
    						alert("date erronée");
    					}
    				else
    				{
    					situationGeographique.submit();
    				}

    Voila voila (c'est long mais ça en vaut la peine ^^)
    Si vous avez des idées, n'hésitez pas ^^

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    Si tu as gardé ce code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
    // on ferme la connexion
    echo $sql;
    //mysql_close();

    c'est normal qu'il ne se passe rien car tu ne lui demandes rien. D'autre part, dans le js que tu nous montres, situationGeographique n'est pas déclaré quand tu fais un submit() dessus.

    EDIT: et ce n'est pas comme ca que tu traites une date, cela ne marchera pas

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    Si tu as gardé ce code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); 
    // on ferme la connexion
    echo $sql;
    //mysql_close();

    c'est normal qu'il ne se passe rien car tu ne lui demandes rien. D'autre part, dans le js que tu nous montres, situationGeographique n'est pas déclaré quand tu fais un submit() dessus.
    Comment ça? Le code fonctionne pour mes deux premières pages, le echo me renvoie bien la commande SQL (y'a rien qui sauvegarde mais la requete passe bien)
    EDIT: et ce n'est pas comme ca que tu traites une date, cela ne marchera pas
    C'est plus complexe? Vaut mieux laisser tomber?

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Pour tester une date, il faut créer un objet de type date et ne pas tester directement les strings fourni.

    FAQ

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Merci pour la doc.
    Sinon tu voulais dire quoi par "n'est pas déclaré quand tu fais le submit" ?

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Ou est déclaré ton situationGeographique ? Pas dans la portion de code js que tu nous as montré. Peut etre au dessus du bloc elseif ?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Code js : 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
     
    <SCRIPT LANGUAGE="JavaScript">
    		function controle(form)
    		{
    			if (form == 'client'){
    				...
    				else
    				{
    					client.submit();
    				}
    									}
    			else if (form == 'proprietaire'){
    				...				else
    				{
    					proprietaire.submit();
    				}
    											}
    			else if (form == 'situationGeographique'){
    				var cp = document.situationGeogrpahique.codePostal.value;
    				if ((cp < 1000) || (cp >= 100000)) 
    				{
    					alert("code postal erroné");
    				}
    				else
    				{
    					situationGeographique.submit();
    				}

    et pour le form :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="situationGeographique" method="post" action="panneaux.php">

  8. #8
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Rajoutes ceci :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var situationGeographique = document.situationGeographique;

    ou

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.situationGeographique.submit();

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Ah, y'a un message d'erreur maintenant.
    -> document.situationGeographique.codePostal à la valeur null ou n'est pas un objet.

    Je vais essayer de voir d'où ça provient.

  10. #10
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Tu as fais une faute d'orthographe: situationGeogrpahique

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Putain je suis con... j'avais marqué document.situationGeogarphique un truc comme ça...

    Merci quand même.



    Sinon, pas du tout dans le même genre :
    dans ma première page, le client doit choisirentre deux boutons radio.
    Le 1er est "à son propre compte", le 2eme est "en tant que mandataire".

    C'est possible de faire avec une boucle if un truc du genre :
    if (exploitation == 'propreCompte'){
    situationGeographique.submit();
    }
    else if (exploitation == 'mandataire'){
    proprietaire.submit();
    }

    exploitation est le nom de mon bouton radio.

  12. #12
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    tu ne peux pas directement accèder à l'objet ainsi, tu dois passer par document.nomDuFormulaire.exploitation.value pour tester sa valeur ou mieux document.forms[nomDuFormulaire].elements['exploitation'].value

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    D'acc merci je vais tester ça. Je te tiens au courant, merci !

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2010
    Messages : 347
    Points : 121
    Points
    121
    Par défaut
    Code js : 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
     
    		function changePage()
    		{
    			if (form == 'client'){
    				var exploit = document.forms[client].elements['exploitation'].value;
    				var situation = document.situationGeographique;
    				var proprio = document.proprietaire;
    				if (exploit =='solo')
    				{
    				client.submit();
    				siuation.open();
    				}
    					if (exploit =='mandataire')
    					{
    					client.submit();
    					proprio.open();
    					}
    			}
    		}

    Donc j'ai fait la fonction mais maintenant j'ai un problème pour l'utiliser.
    Je ne sais pas comment faire pour "lancer" la page suivante.

Discussions similaires

  1. Choix entre 2 actions dans un jeu
    Par Agropow dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 25/12/2014, 21h51
  2. Choix entre sauvegarde Windows 7 et logiciel sauvegarde de mon DD
    Par mauriceguillier dans le forum Windows 7
    Réponses: 1
    Dernier message: 26/10/2010, 21h18
  3. choix entre dbexpress et objet interbase
    Par hani dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/11/2004, 23h09
  4. Conseille Choix entre MySQL et InterBase?
    Par Redhouane dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/09/2004, 11h42
  5. choix entre macro et fonction
    Par remi77 dans le forum C
    Réponses: 4
    Dernier message: 22/10/2003, 14h26

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