Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour formulaire HTLM

    21 juin 2017 à 18:00:55

    Bonjour, 

    Débutant avec le HTML et PHP, je suis vraiment bloqué sur une solution depuis 3 jours :-( 

    En effet, cela concerne un formulaire de réservation, j'utilise la méthode POST pour transmettre les infos de mon formulaire à une page cible.php jusque là, tout semble fonctionner. Cependant, lorseque j'essaye d'integrer un calcul de prix sur ma page html afin que ce dernier sois aussi transmis sur la page cible.php. 

    Exemple, lorsque le client sélectionne la voiture qu'il souhaite louer, ainsi que la date de location du 21/06/2017 au 22/06/2017 le prix sera de 50 € 25x2jrs . je souhaite trouver un moyen mais sans succès. 

    J'ai même essayé de le faire en javascript :-(

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    
    
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Reserva coche, 4x4 o minibús en Marrakech</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    
    <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script>
    <script type="text/javascript" src="/js/m.js"></script>
     
    	
    <link href="style/css3.css" rel="stylesheet" type="text/css" />
    <link href="SpryAssets/SpryMenuBarHorizontal3.css" rel="stylesheet" type="text/css" />
    <script src="/js/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script>
    	
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
    <link rel="stylesheet" href="style/nivo-slider.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    
    <link type="text/css" href="style/overcast/jquery-ui-1.8.12.custom.css" rel="stylesheet" />	
    <link type="text/css" rel="stylesheet" href="style/carrousel.css">
    
    <link href="style/global.css" rel="stylesheet" type="text/css" />
    
    <script type="text/javascript" src="js/carrousel.js"></script>
    <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
    
    <script src="administrator/js/jqprint.html" type="text/javascript" charset="utf-8"></script>
    <link rel="stylesheet" href="style/validationEngine.jquery.css" type="text/css"/>
       <script>
    	$(function() {		
    		$( "#mdp-form" ).dialog({
    			autoOpen: false,
    			height: 110,
    			width: 250,
    			modal: true,
    			buttons: {
    				Cerrar: function() {
    					$( this ).dialog( "close" );
    				},
    				"Enviar": function() {
    					$( "#mdp-form" ).submit();
    				}
    			},
    			close: function() {
    				allFields.val( "" ).removeClass( "ui-state-error" );
    			}
    		});
    		$( "#mdp_oublie" ).click(function() {
    				$( "#mdp-form" ).dialog( "open" );
    			});
    		// facebook	
    		$( ".contentFun" ).dialog({
    			autoOpen: false,
    			height: 465,
    			width: 520,
    			modal: true,
    		});
    		$( "#fansLink" ).click(function() {
    				$( ".contentFun" ).dialog( "open" );
    			});
    		// twitter	
    		/*$( "#twitter" ).dialog({
    			autoOpen: false,
    			height: 465,
    			width: 420,
    			modal: true,
    		});
    		$( "#twitterLink" ).click(function() {
    				$( "#twitter" ).dialog( "open" );
    			});	
    			*/	
    	});	</script> 
    
    <script type="text/javascript">
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-18199404-43']);
      _gaq.push(['_trackPageview']);
    
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    
    </script>
    <style type="text/css"> 
    
    #tt{
    	height:2px;
    	position:absolute;
    	z-index:15;
    	width: 990px;
    	margin-top:-2px;
    	margin-left:0px;
    	top: 0px;
    	left: 12px;
    
       }
    
    .sss { font-size:9px; color:#CCCCCC}
    
    </style>
    </head>
    <body>
    <div class="contentFun" style="display:none;" title="Facebook">
      
    </div>	
    <div id="twitter" style="display:none;"> </div>
    <div class="left">
      <div class="cont-left">
      <div class="shadow">
      <div class="coord1">
      <p></p>
      <form action="cible.php" id="form_reser" method="post">
        <span>Véhicule : </span>
        <select name="veh" class="veh">
        <option value="Ford Fiesta"  selected="selected">Ford Fiesta</option>
          <option value="Renault Symbol">Renault Symbol</option>
          <option value="9">Clio 4 </option>
          <option value="10">Peugeot 301</option>
          <option value="13">Toyota Land Cruiser Automatique  Turbo </option>
          <option value="14">Toyota Land Cruiser Manuel  Turbo</option>
          <option value="16"> Mitsubishi Pajero Sport Turbo </option>
          <option value="17">Hyundai 6 places</option>
          <option value="18">Minibus 9 places avec ou sans chauffeur</option>
          <option value="19">Ford 12 places</option>
          <option value="20">Fiat Ducato 14 places</option>
          <option value="21">Fiat Ducato 17 places</option>
          <option value="24">Renault Lodgy 7 Personnes</option>
          <option value="25">Jeep Cherokee </option>
          <option value="27">Range Rover Evoque</option>
          <option value="28">Range Rover Vogue</option>
          <option value="30">Hyundai Accent Automatique</option>
        </select>
        <br />
        <table width="100%">
          <tr>
            <td><label>Date : </label></td>
            <td><input type="text" name="date1" id="date1" class="res-input"  value="15/06/2017"/></td>
            <td><label>Heure</label></td>
            <td><select name="heure1" class="heure1top">
              <option value="02:00">02:00 heure</option>
              <option value="03">03:00 heure</option>
              <option value="04">04:00 heure</option>
              <option value="05">05:00 heure </option>
              <option value="06">06:00 heure</option>
              <option value="07">07:00 heure</option>
              <option value="08">08:00 heure</option>
              <option value="09">09:00</option>
              <option value="10">10:00</option>
              <option value="11">11:00</option>
              <option value="12" selected="selected">12:00</option>
              <option value="13">13:00</option>
              <option value="14">14:00</option>
              <option value="15">15:00</option>
              <option value="16">16:00</option>
              <option value="17">17:00</option>
              <option value="18">18:00</option>
              <option value="19">19:00</option>
              <option value="20">20:00</option>
              <option value="21">21:00</option>
              <option value="22">22:00</option>
              <option value="23">23:00</option>
              <option value="00">00:00</option>
            </select></td>
          </tr>
          <tr>
            <td><label>Ville : </label></td>
            <td><select name="ville1" class="ville1">
              <option value="Marrakech" >Marrakech</option>
              <option value="Agadir" >Agadir</option>
              <option value="Rabat" >Rabat</option>
              <option value="Casablanca" >Casablanca</option>
              <option value="Tanger" >Tanger</option>
              <option value="Fes" >Fes</option>
              <option value="Essaouira" >Essaouira</option>
              <option value="Ouarzazat" >Ouarzazate</option>
            </select></td>
            <td><label>N° Vole</label></td>
            <td><input type="text" name="vol1" class="res-input-vol2" /></td>
          </tr>
          <tr>
            <td><label>Lieu : </label></td>
            <td colspan="3"><input type="text" name="lieu1" class="res-input-lieu2" /></td>
          </tr>
        </table>
        <div class="sep"></div>
        </div>
        <div class="coord2"> <span>Retour du véhicule</span>
          <table width="100%">
            <tr height="15">
              <td><label>Date : </label></td>
              <td><input type="text" name="date2" id="date2" class="res-input" value="" /></td>
              <td><label>Heures </label></td>
              <td><select name="heure2" class="select-heure heure2">
                <option value="02">02:00</option>
                <option value="03">03:00</option>
                <option value="04">04:00</option>
                <option value="05">05:00</option>
                <option value="06">06:00</option>
                <option value="07">07:00</option>
                <option value="08">08:00</option>
                <option value="09">09:00</option>
                <option value="10">10:00</option>
                <option value="11">11:00</option>
                <option value="12" selected="selected">12:00</option>
                <option value="13">13:00</option>
                <option value="14">14:00</option>
                <option value="15">15:00</option>
                <option value="16">16:00</option>
                <option value="17">17:00</option>
                <option value="18">18:00</option>
                <option value="19">19:00</option>
                <option value="20">20:00</option>
                <option value="21">21:00</option>
                <option value="22">22:00</option>
                <option value="23">23:00</option>
                <option value="00">00:00</option>
              </select></td>
            </tr>
            <tr>
              <td><label>Ville : </label></td>
              <td><select name="ville2" class="ville2">
                <option value="Marrakech" >Marrakech</option>
                <option value="Agadir" >Agadir</option>
                <option value="Rabat" >Rabat</option>
                <option value="Casablanca" >Casablanca</option>
                <option value="Tanger" >Tanger</option>
                <option value="Fes" >Fes</option>
                <option value="Essaouira" >Essaouira</option>
                <option value="Ouarzazat" >Ouarzazate</option>
              </select></td>
              <td><label>N° Vole</label></td>
              <td><input type="text" name="vol2" class="res-input-vol" /></td>
            </tr>
            <tr>
              <td><label>Lieux : </label></td>
              <td colspan="3"><input type="text" name="lieu2" class="res-input-lieu" /></td>
            </tr>
          </table>
        </div>
        <div class="coord3">
          <div class="sep"></div>
          <div class="service"> <span></span><br />
            <div class="cont-checkbox">
              <input type="checkbox" name="service4" value="1" />
              GPS</div>
            <div class="cont-checkbox">
              <input type="checkbox" name="service5" value="1" /> 
            Siège enfant</div>
            <div class="cont-checkbox">
              <input type="checkbox" name="service6" value="1" />
              barras de techo</div>
          </div>
          <div class="sep"></div>
        </div>
        </div>
        </div>
        <div class="bottom">
          <div class="prix" id="prix">
            <div class="loading" style="position:absolute; display:none; height:72px; width:340px; background:#FFF;"><img src="images/loading2.gif" alt="" width="50" /></div>
            Precio del vehículo : <br />
            Extras servicios : <br />
            Los costos de transporte : <br />
            Total : </div>
          <input type="submit" name="langue" value="Réserver"	/>
        </div>
      </form>
      <script>
    //var JQUI = jQuery.noConflict();
    	$(function() {
    		$( "#date1" ).datepicker({
    			showOn: "both",
    		    buttonImage: "images/calendrier2.jpg",
    		    buttonImageOnly: true,
    			dateFormat: 'dd/mm/yy',
    			minDate: '15/06/2017'
    			});
    		
    		$('.NumPage').click(function() {
                            var IdTd = $(this).attr("id");
                            //var page = IdTd;
                            var order = "page="+IdTd+"&l=esp";
                            $.post("components/com_excursion/liste.html", order, function(theResponse){
                                $("#ListEx").html(theResponse);
                                //$('#conteneur_uploder').hide();
                            });	
    	});
    	});
    				
                    </script>        
                    
      <script>
    //var JQUI = jQuery.noConflict();
    	$(function() {
    		$( "#date2" ).datepicker({
    			showOn: "both",
    		    buttonImage: "images/calendrier2.jpg",
    		    buttonImageOnly: true,
    			dateFormat: 'dd/mm/yy',
    			minDate: '15/06/2017'
    			});
    		
    		$('.NumPage').click(function() {
                            var IdTd = $(this).attr("id");
                            //var page = IdTd;
                            var order = "page="+IdTd+"&l=esp";
                            $.post("components/com_excursion/liste.html", order, function(theResponse){
                                $("#ListEx").html(theResponse);
                                //$('#conteneur_uploder').hide();
                            });	
    	});
    	});
    				
                    </script>        
      <script>
     ////////////////////////////////////
     function show_loader(){
    	 $(".loading").show();
    	 }
     $("#send").click(function(){
    show_loader();
    var order = $("#form_reser").serialize();
    //alert(order);
      $.post("components/com_reservation/calcule.html", order, function(theResponse){
       $("#prix").html(theResponse);
       $(".loading").hide();
      });
      return false;
      })
    
      </script>
      <div class="clr"></div>
    </div>
    <script type="text/javascript">
    
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
    
    </script>
    
    </body>
    </html>   
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Information de ma réservation</title>
    </head>
    
    <body>
    <?php echo $_POST['fiesta']; ?>
    <p>&nbsp;</p>
    <p>photo</p>
    <p>&nbsp;</p>
    <p><strong>Type de véhicule : </strong><?php echo $_POST['veh']; ?></p>
    <p>Livraison du véhicule : le <?php echo $_POST['date1']; ?> à <?php echo $_POST['heure1']; ?> heure</p>
    <p>Ville de départ : <?php echo $_POST['ville1']; ?></p>
    <p>Retour du véhicule : <?php echo $_POST['date2']; ?> à <?php echo $_POST['heure2']; ?> heure</p>
    <p>Lieu de récupération : <?php echo $_POST['ville2']; ?></p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    </body>
    </html>
    




    • Partager sur Facebook
    • Partager sur Twitter
      21 juin 2017 à 20:40:45

      Bonjour,

      Premier conseil : sépare physiquement ton JS, ton CSS et ton HTML/PHP tu (et on!) y verras plus clair (faire un fichier pour chacun). Ce sera plus facile de t'aider car là nous avons du JS en plein milieu du HTML, en début etc... c'est brouillon :/

      Deuxième conseil : Indente proprement ton code.

      Troisième conseil : Valide ton code avec W3CValidator :)

      Je viendrais éditer quand j'aurais réussi à reproduire ton code sous JSFindle :)

      -
      Edité par lindadu01 21 juin 2017 à 20:44:33

      • Partager sur Facebook
      • Partager sur Twitter

      Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)

        21 juin 2017 à 21:44:20

        Bonjour, 

        Comme demandée, j'ai essayé de mettre de l'ordre dans le code :-/ .

        Voiçi la page html : 

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
        
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>formulaire de location rapide</title>
        <meta name="description" content="" />
        <meta name="keywords" content="" />
        <link href="style/css3.css" rel="stylesheet" type="text/css" />
         <form action="cible.php" id="form_reser" method="post">
        </head>
        
        <body>
        
         
            <span>Véhicule : </span>
            <select name="veh" class="veh">
            <option value="7"  selected="selected">Ford Fiesta</option>
              <option value="8">Renault Symbol</option>
              <option value="9">Clio 4 </option>
              <option value="10">Peugeot 301</option>
              <option value="13">Toyota Land Cruiser Automatique  Turbo </option>
              <option value="14">Toyota Land Cruiser Manuel  Turbo</option>
              <option value="16"> Mitsubishi Pajero Sport Turbo </option>
              <option value="17">Hyundai 6 places</option>
              <option value="18">Minibus 9 places avec ou sans chauffeur</option>
              <option value="19">Ford 12 places</option>
              <option value="20">Fiat Ducato 14 places</option>
              <option value="21">Fiat Ducato 17 places</option>
              <option value="24">Renault Lodgy 7 Personnes</option>
              <option value="25">Jeep Cherokee </option>
              <option value="27">Range Rover Evoque</option>
              <option value="28">Range Rover Vogue</option>
              <option value="30">Hyundai Accent Automatique</option>
            </select>
            <br />
            <table width="100%">
              <tr>
                <td><label>Date : </label></td>
                <td><input type="text" name="date1" id="date1" class="res-input"  value="15/06/2017"/></td>
                <td><label>Heure</label></td>
                <td><select name="heure1" class="heure1top">
                  <option value="02:">02:00</option>
                  <option value="03">03:00 </option>
                  <option value="04">04:00 </option>
                  <option value="05">05:00 </option>
                  <option value="06">06:00 </option>
                  <option value="07">07:00 </option>
                  <option value="08">08:00 </option>
                  <option value="09">09:00</option>
                  <option value="10">10:00</option>
                  <option value="11">11:00</option>
                  <option value="12" selected="selected">12:00</option>
                  <option value="13">13:00</option>
                  <option value="14">14:00</option>
                  <option value="15">15:00</option>
                  <option value="16">16:00</option>
                  <option value="17">17:00</option>
                  <option value="18">18:00</option>
                  <option value="19">19:00</option>
                  <option value="20">20:00</option>
                  <option value="21">21:00</option>
                  <option value="22">22:00</option>
                  <option value="23">23:00</option>
                  <option value="00">00:00</option>
                </select></td>
              </tr>
              <tr>
                <td><label>Ville : </label></td>
                <td><select name="ville1" class="ville1">
                  <option value="Marrakech" >Marrakech</option>
                  <option value="Agadir" >Agadir</option>
                  <option value="Rabat" >Rabat</option>
                  <option value="Casablanca" >Casablanca</option>
                  <option value="Tanger" >Tanger</option>
                  <option value="Fes" >Fes</option>
                  <option value="Essaouira" >Essaouira</option>
                  <option value="Ouarzazat" >Ouarzazate</option>
                </select></td>
                <td><label>N° Vole</label></td>
                <td><input type="text" name="vol1" class="res-input-vol2" /></td>
              </tr>
              <tr>
                <td><label>Lieu : </label></td>
                <td colspan="3"><input type="text" name="lieu1" class="res-input-lieu2" /></td>
              </tr>
            </table>
            <div class="sep"></div>
            </div>
            <div class="coord2"> <span>Retour du véhicule</span>
              <table width="100%">
                <tr height="15">
                  <td><label>Date : </label></td>
                  <td><input type="text" name="date2" id="date2" class="res-input" value="" /></td>
                  <td><label>Heures </label></td>
                  <td><select name="heure2" class="select-heure heure2">
                    <option value="02">02:00</option>
                    <option value="03">03:00</option>
                    <option value="04">04:00</option>
                    <option value="05">05:00</option>
                    <option value="06">06:00</option>
                    <option value="07">07:00</option>
                    <option value="08">08:00</option>
                    <option value="09">09:00</option>
                    <option value="10">10:00</option>
                    <option value="11">11:00</option>
                    <option value="12" selected="selected">12:00</option>
                    <option value="13">13:00</option>
                    <option value="14">14:00</option>
                    <option value="15">15:00</option>
                    <option value="16">16:00</option>
                    <option value="17">17:00</option>
                    <option value="18">18:00</option>
                    <option value="19">19:00</option>
                    <option value="20">20:00</option>
                    <option value="21">21:00</option>
                    <option value="22">22:00</option>
                    <option value="23">23:00</option>
                    <option value="00">00:00</option>
                  </select></td>
                </tr>
                <tr>
                  <td><label>Ville : </label></td>
                  <td><select name="ville2" class="ville2">
                    <option value="Marrakech" >Marrakech</option>
                    <option value="Agadir" >Agadir</option>
                    <option value="Rabat" >Rabat</option>
                    <option value="Casablanca" >Casablanca</option>
                    <option value="Tanger" >Tanger</option>
                    <option value="Fes" >Fes</option>
                    <option value="Essaouira" >Essaouira</option>
                    <option value="Ouarzazat" >Ouarzazate</option>
                  </select></td>
                  <td><label>N° Vole</label></td>
                  <td><input type="text" name="vol2" class="res-input-vol" /></td>
                </tr>
                <tr>
                  <td><label>Lieux : </label></td>
                  <td colspan="3"><input type="text" name="lieu2" class="res-input-lieu" /></td>
                </tr>
              </table>
            </div>
            <div class="coord3">
              <div class="sep"></div>
              <div class="service"> <span></span><br />
                <div class="cont-checkbox">
                  <input type="checkbox" name="service4" value="1" />
                  GPS</div>
                <div class="cont-checkbox">
                  <input type="checkbox" name="service5" value="1" /> 
                Siège enfant</div>
                <div class="cont-checkbox">
                  <input type="checkbox" name="service6" value="1" />
                  barras de techo</div>
              </div>
              <div class="sep"></div>
            </div>
            </div>
            </div>
            <div class="bottom">
              
              <input type="submit" name="langue" value="Réserver"	/>
            </div>
          </form>
          
        </div>
        
        </body>
        </html>   
        La page cible.php
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Information de ma réservation</title>
        </head>
        
        <body>
        
        <p><strong>Type de véhicule : </strong><?php echo $_POST['veh']; ?></p>
        <p>Livraison du véhicule : le <?php echo $_POST['date1']; ?> à <?php echo $_POST['heure1']; ?> heure</p>
        <p>Ville de départ : <?php echo $_POST['ville1']; ?></p>
        <p>Retour du véhicule : <?php echo $_POST['date2']; ?> à <?php echo $_POST['heure2']; ?> heure</p>
        <p>Lieu de récupération : <?php echo $_POST['ville2']; ?></p>
        <p>Estimation du prix de location : </p>
        <p>&nbsp;</p>
        </body>
        </html>
        

        D'avance merci

        • Partager sur Facebook
        • Partager sur Twitter
          22 juin 2017 à 10:58:40

          Merci c'est mieux :) .

          Bon quelques "couacs" remarqué : 

          Je suppose que c'est un fail de copier/coller mais ta balise doctype n'est pas fermée.

          Dans la balise <head> tu y retrouves toutes les informations relatives à ta pages (titres, encodages etc...) Ce n'est pas là où tu mets le contenu de ta page (et donc pas ici que tu commences ton formulaire).

          Tu fermes deux fois un div hors qu'il n'y en a qu'un seul d'ouvert (je pense que tu as oublier de mettre un 

          <div class="coord1">

          Il te manque la balise <html>

          Petit détails : tu as oublier le mot "Services :" au dessus de GPS etc...

          Bon, tu peux t'en débrouiller sans l'aide de JS. Tu fais une fonction PHP (idéalement dans un fichier à part que tu inclus) et qui fait un écho du prix en fonction du nombre de jours. et tu appelle ta fonction là où tu en as besoin :)

          Si tu as besoin d'aide, je reste à ta disponsition :)

          -
          Edité par lindadu01 22 juin 2017 à 10:59:11

          • Partager sur Facebook
          • Partager sur Twitter

          Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)

            22 juin 2017 à 17:45:56

            Bon et merci pour la réponse rapide :-)

            Pour la fonction en Php j'y pensé. ceci dis, chaque voiture dispose de son prix de location, exemple , Fiesta 25 € mais GOF à 30 jours le jours. 

            Je ne sais pas si c'est faisable avec une fonction :-(

            • Partager sur Facebook
            • Partager sur Twitter
              22 juin 2017 à 19:14:53

              Hello,

              C'est quoi le GOF ? Tu as un souci de conception ? 

              On choisis un modèle, une période (date + heure 1 à date +heure 2) puis on envoie le tout côté serveur, c'est bien cela ? Enfin la base données est plus pratique pour manipuler le temps, puis multiplier par le prix horaire/jour.

              Pour mieux comprendre, mets toi à la place de l"utilisateur et explique comment réserver tel modèle de date1 à date2, ce sera plus clair...

              -
              Edité par Lucky13 22 juin 2017 à 19:15:20

              • Partager sur Facebook
              • Partager sur Twitter
                22 juin 2017 à 19:52:21

                Bonjour, 

                Je voulais dire une 'GOLF' :-) navré. 

                Voilà je me mets à la place du visiteur, Je réserve un véhicule pour une location  d'une  péiode de 10 jours ( via le formulaire de réservation rapide -> par html ci-dessus ), je sélectionne le véhicule FORD FIESTA ensuite je choisis la date départ  "1/07/2017 à 12h00". Retour au "10/07/2017 12h00" --> Je valide , 

                J'ai directement une page ( Cible.php, ) qui m'affiche un petit récapitulatif de ma demande de location 

                Type de véhicule : </strong><?php echo $_POST['veh']; ?></p>
                <p>Livraison du véhicule : le <?php echo $_POST['date1']; ?> à <?php echo $_POST['heure1']; ?> heure</p>
                <p>Ville de départ : <?php echo $_POST['ville1']; ?></p>
                <p>Retour du véhicule : <?php echo $_POST['date2']; ?> à <?php echo $_POST['heure2']; ?> heure</p>
                <p>Lieu de récupération : <?php echo $_POST['ville2']; ?></p>
                Nombre de jours : ? <---- normalement c'est 10 jours
                Estimation du prix de location : ? <---- 25x10jours de location = 250 €

                Voilà, le seul souci que j'ai en ce moment, c'est vraiment un souci de logique, car dans la function est ce qu'il va falloir faire appel à plusieurs variable ( date1 + date2 + model de la voiture ) via un tableau ? 

                Fin dsl dêtre un peu bebete mais je ne trouve pas :-p

                • Partager sur Facebook
                • Partager sur Twitter
                  22 juin 2017 à 20:11:04

                  Dans la fonction, oui il va falloir utiliser 3 variables (celles que tu as cités). Tu peux éventuellement passer par un switch case pour gérer le prix, mais comme ditLucky, une BDD est mieux car, en plus tu pourra gérer un historique ou modifier la réservation, chose que tu ne peux pas faire ici.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Parfois, arrêter 5 minutes son développement permet de mieux repartir face à un problème ;)

                    22 juin 2017 à 21:23:42

                    Tu comptes enregistrer la recherche en DB? Si non autant le faire en JS puis enregistrer les informations en cas de confirmation.

                    Cela fait un traitement en JS ->information au client

                    Si validation -> Enregistrer en DB. La calcul sera fait côté serveur si la demande en est faite par le client et toi même si tu as besoins de connaitre l'état actuel de la réservation.

                    C'est un peu le principe souhaité ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 juin 2017 à 21:35:59

                      Exactement. ceci dis, en Javascript ma connaissance est vraiment null il va falloir que je me documente. 

                      Concernant la BDD je suis en plein apprentissage. 

                      Je pense que vous m'avez dis, je vais opter pour utilisation de BDD malgré que je suis en plein apprentissage. 4

                      Donc niveau BDd je vais devoir créer une bdd avec 4 table ( ID, Model de voiture, date début, date fin, ainsi que le prix ) 

                      Est -ce bien ça ? en te cas je tiens à m'é excuser pour les questions débutant, mais je tiens vraiment à comprendre le fonctionnement :-)

                      D'avance merci

                      -
                      Edité par elkhattabifouad 22 juin 2017 à 21:42:46

                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 juin 2017 à 21:48:27

                        Vouloir faire un site de réservation sans connaissance en SQL est un peu contradictoire...

                        C'est une site d'apprentissage ? 

                        Une DB est assez simple à créer et les scripts dans le cours suffisent à insérer/mettre à jour/ supprimer et rechercher par critère.

                        De plus une DB facilite grandement les calculs sur les dates ^^

                        Le JS apporte un confort utilisateur dans ton cas, mais rien n'est protégé. heureusement il y a des  articles pour t'aider -> https://www.scriptol.fr/javascript/dates-difference.php 

                        Il va donc falloir travailler un peu le cours SQL, si on te donne les scripts et codes tout fait tu ne pourras jamais les modifier à ta guise plus tard. Il serait bien aussi d'écrire un mini cahier des charges, ainsi que la structure de ta base de données (relations entre les tables). Cela va grandement te faire gagner du temps et t'éviter de te perdre en route...

                        Il faut donc que l'utilisateur puisse avoir un compte s'il valide sa réservation, donc un système de création de compte/connexion comme pour panier d'e-commerce. Puis les tables, celles des marque de voiture avec leur identifiants, leur statut (dispo ou non), etc...

                        Désolé si je t'embrouille, mais mettre en place un système demande souvent d'en avoir d'autres (ici le login)

                        Qu'en penses-tu ?

                        -
                        Edité par Lucky13 22 juin 2017 à 21:55:06

                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 juin 2017 à 21:58:40

                          Il s'agit d'un site uniquement pour apprentissage . 

                          En ce qui me concerne, pour apprendre, j'ai toujours eu le besoin de pratiquer si non j'apprend jamais avec les exemples des autres :-).

                          Non, je ne cherche pas du tout un code tout fait car il me servira pas à grand chose "peut être" pour comprendre mieux le fonctionnement ".

                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 juin 2017 à 22:12:42

                            Du coup autant le faire avec les bonnes pratiques.

                            - Cahier des charges qui décrits en gros le fonctionnement, l'interface utilisateur, la charte graphique, le menu de navigation, les événements, etc...

                            - Architecture du dossier de travail, ressources ton tu as besoin.

                            - Création de la base de données, c'est elle qui va définir ton code côté serveur ;), donc hyper important.

                            - Codage, avec séparation du html, php et js. Inclusion de fichiers, etc...

                            Je passe certaines étapes qui vont te venir naturellement, mais quand on c'est ce que l'on veut, que l'on suit la feuille de route avec les testes à chaque traitement alors on va beaucoup plus vite. 

                            ps: le site du classico est mon ancien site d'apprentissage (1 an à le faire), j'ai fait comme toi (html/css/php et js + ajax) tout en application l'organisation décrite plus haut.

                            J'avais volontairement mis la barre assez haute avec des contraintes, je l'ai fait juste en suivant les cours d'OC et Alsacreation. 

                            On y pense pas pas mais au bout d'un moment les fichiers s'accumulent, on créé des doublons, etc... donc autant être organisé.

                            --------------------

                            En attendant, peux nous poster le résultat de: 

                            fais un var_dump($_POST); au début de ton fichier cible.php pour voir les paramètres obtenus.

                            -
                            Edité par Lucky13 22 juin 2017 à 22:43:00

                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 juin 2017 à 17:52:11

                              Bonjour, 

                              Bon j'ai passé la nuit à comprendre le fonctionnement de bdd et j'y peu retenir pas mal de chose en  faisant des tests sans succès lol :-) 

                              J'ai travaillé sur le formulaire afin de voir le code plus clairement, j'ai ensuite remplacé la page cible.php par ajout2.php afin d'insérer les données dans la bdd via $_POST

                              Création de bdd ( me semble ok ) "image ci-dessous, "

                               "var_dump"  dans la page ajout2.php  ( le résultat donné est : string(6) "$_POST" ) 

                              Je ne sais pas ce qui peux encore bloquer au niveau de l'insertion des données à la bdd :-( 

                              avez-vous une idée ?


                              Page ajout2.php

                              <?php 
                              
                              //ouverture d'une connexion à la BDD
                              
                              $objetPdo = new PDO('mysql:host=127.0.0.1;dbname=auto','root','');
                              
                              //préparation de la requête d'insertion (SQL)
                              
                              	$pdoStat = $objetPdo->prepare('INSERT INTO open VALUES(NULL, 
                              	:veh, :date1, :heure3, :ville3, :vol3, :lieu3, :date2, :heure,
                              	:ville, :vol, :lieu,)');
                              	
                              // on relie charque marqueur à une valeur
                              
                              	$pdoStat->bindValue(':veh', $_POST['voiture']);
                              	$pdoStat->bindValue(':date1', $_POST['ladate']);
                              	$pdoStat->bindValue(':heure3', $_POST['lheure']);
                              	$pdoStat->bindValue(':ville3', $_POST['villedepart']);
                              	$pdoStat->bindValue(':vol3', $_POST['voldepart']);
                              	$pdoStat->bindValue(':lieu3', $_POST['lieudepart']);
                              	$pdoStat->bindValue(':date2', $_POST['datearrivee']);
                              	$pdoStat->bindValue(':heure', $_POST['heurearrivee']);
                              	$pdoStat->bindValue(':ville', $_POST['villearrivee']);
                              	$pdoStat->bindValue(':vol', $_POST['volarrivee']);
                              	$pdoStat->bindValue(':lieu', $_POST['lieuarrivee']);
                              	
                              // on éxécute la requête
                              	
                              		$insertIsOk = $pdoStat->execute();
                              		
                              		if($insertIsOk){ 
                              		
                              		$message = 'Les données ont été ajoutées';
                              		}
                              		
                              		else{
                              			$message = 'Echec dinsertion';
                              		}
                              ?>
                              
                              <html>
                              <body>
                              
                              <title>Page d'insertion</title>
                              
                              <p>Insertion des données</p>	
                              
                              <h1><?php echo $message ?></h1>
                              
                              </body>
                              </html>
                              

                              Page formulaire2.html

                              <!doctype html>
                              <html>
                              <head>
                              <meta charset="utf-8">
                              <title>Formulaire d'insertion à la BDD</title>
                              </head>
                              
                              <body>
                              <form action="ajout2.php" id="form_reser" method="POST">
                                <span>Véhicule : </span>
                                <select name="voiture" class="voiture">
                                  <option value="7">Ford Fiesta</option>
                                  <option value="8">Renault Symbol</option>
                                  <option value="9">Clio 4 </option>
                                  <option value="10">Peugeot 301</option>
                                  <option value="13">Toyota Land Cruiser Automatique  Turbo </option>
                                  <option value="14">Toyota Land Cruiser Manuel  Turbo</option>
                                  <option value="16"> Mitsubishi Pajero Sport Turbo </option>
                                  <option value="17">Hyundai 6 places</option>
                                  <option value="18">Minibus 9 places avec ou sans chauffeur</option>
                                  <option value="19">Ford 12 places</option>
                                  <option value="20">Fiat Ducato 14 places</option>
                                  <option value="21">Fiat Ducato 17 places</option>
                                  <option value="24">Renault Lodgy 7 Personnes</option>
                                  <option value="25">Jeep Cherokee </option>
                                  <option value="27">Range Rover Evoque</option>
                                  <option value="28">Range Rover Vogue</option>
                                  <option value="30">Hyundai Accent Automatique</option>
                                </select>
                                <br />
                                <table width="100%">
                                  <tr>
                                    <td><label>Date : </label></td>
                                    <td><input type="text" name="ladate"  value="15/06/2017"/></td>
                                    <td><label>Heure</label></td>
                                    <td><select name="lheure" class="select-heure heure1">
                                      <option value="02">02:00</option>
                                      <option value="03">03:00</option>
                                      <option value="04">04:00</option>
                                      <option value="05">05:00</option>
                                      <option value="06">06:00</option>
                                      <option value="07">07:00</option>
                                      <option value="08">08:00</option>
                                      <option value="09">09:00</option>
                                      <option value="10">10:00</option>
                                      <option value="11">11:00</option>
                                      <option value="12" selected="selected">12:00</option>
                                      <option value="13">13:00</option>
                                      <option value="14">14:00</option>
                                      <option value="15">15:00</option>
                                      <option value="16">16:00</option>
                                      <option value="17">17:00</option>
                                      <option value="18">18:00</option>
                                      <option value="19">19:00</option>
                                      <option value="20">20:00</option>
                                      <option value="21">21:00</option>
                                      <option value="22">22:00</option>
                                      <option value="23">23:00</option>
                                      <option value="00">00:00</option>
                                    </select></td>
                                  </tr>
                                  <tr>
                                    <td><label>Ville</label></td>
                                    <td><select name="villedepart">
                                      <option value="Marrakech" >Marrakech</option>
                                      <option value="Agadir" >Agadir</option>
                                      <option value="Rabat" >Rabat</option>
                                      <option value="Casablanca" >Casablanca</option>
                                      <option value="Tanger" >Tanger</option>
                                      <option value="Fes" >Fes</option>
                                      <option value="Essaouira" >Essaouira</option>
                                      <option value="Ouarzazat" >Ouarzazate</option>
                                    </select></td>
                                    <td><label>N° de vole</label></td>
                                    <td><input type="text" name="voldepart" class="res-input-vol2" /></td>
                                  </tr>
                                  <tr>
                                    <td><label>Lieu</label></td>
                                    <td colspan="3"><input type="text" name="lieudepart"  /></td>
                                  </tr>
                                </table>
                                <div class="sep"></div>
                                </div>
                                <br>
                                Menu retour<br>
                                <br>
                                <div class="coord2"> <span>Retour du véhicule</span>
                                  <table width="100%">
                                    <tr height="15">
                                      <td><label>Date</label></td>
                                      <td><input type="text" name="datearrivee" value="" /></td>
                                      <td><label>Heure</label></td>
                                      <td><select name="heurearrivee" class="select-heure heure2">
                                        <option value="02">02:00</option>
                                        <option value="03">03:00</option>
                                        <option value="04">04:00</option>
                                        <option value="05">05:00</option>
                                        <option value="06">06:00</option>
                                        <option value="07">07:00</option>
                                        <option value="08">08:00</option>
                                        <option value="09">09:00</option>
                                        <option value="10">10:00</option>
                                        <option value="11">11:00</option>
                                        <option value="12" selected="selected">12:00</option>
                                        <option value="13">13:00</option>
                                        <option value="14">14:00</option>
                                        <option value="15">15:00</option>
                                        <option value="16">16:00</option>
                                        <option value="17">17:00</option>
                                        <option value="18">18:00</option>
                                        <option value="19">19:00</option>
                                        <option value="20">20:00</option>
                                        <option value="21">21:00</option>
                                        <option value="22">22:00</option>
                                        <option value="23">23:00</option>
                                        <option value="00">00:00</option>
                                      </select></td>
                                    </tr>
                                    <tr>
                                      <td><label>Ville</label></td>
                                      <td><select name="villearrivee">
                                        <option value="Marrakech" >Marrakech</option>
                                        <option value="Agadir" >Agadir</option>
                                        <option value="Rabat" >Rabat</option>
                                        <option value="Casablanca" >Casablanca</option>
                                        <option value="Tanger" >Tanger</option>
                                        <option value="Fes" >Fes</option>
                                        <option value="Essaouira" >Essaouira</option>
                                        <option value="Ouarzazat" >Ouarzazate</option>
                                      </select></td>
                                      <td>N° de vole</td>
                                      <td><input type="text" name="volarrivee" class="res-input-vol" /></td>
                                    </tr>
                                    <tr>
                                      <td><label>Lieu</label></td>
                                      <td colspan="3"><input type="text" name="lieuarrivee"  /></td>
                                    </tr>
                                  </table>
                              	
                                </div>
                                </div>
                                </div>
                                <input type="submit" >
                              </form>
                              <p>&nbsp;</p>
                              </body>
                              </body>
                              </html>
                              

                              Image de la BDD 



                              Merci

                              -
                              Edité par elkhattabifouad 23 juin 2017 à 17:52:59

                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 juin 2017 à 18:09:19

                                Tu as oublié de préciser les champs :

                                    $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, date1, etc...) 
                                	VALUES(NULL, :veh, :date1, :heure3, :ville3, :vol3, :lieu3, :date2, :heure,:ville, :vol, :lieu,)');

                                -> https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/ecrire-des-donnees-2#/id/r-2175539 

                                Tu regroupes tout dans une seule table, pas de souci mais se sera moins pratique que d'en utiliser plusieurs, ici aucune relation.

                                 tables véhicules, tables horaires début (id véhicules) , table horaires fin (id véhicules), tables des villes et lieux, etc...

                                Ensuite on fait une jointure pour regrouper toutes les infos suivant le critère de recherche. mais pour débuter oui cette tables est fonctionnelle.

                                Attention à l'interclassement, le type des données et déclarer le charset lors de la connexion sinon l'utf-8 ne sera pas pris en compte et dans ton HTML les caractères accentuées auront une forme étrange (genre un losange avec un ?)

                                ps: le NULL s'est l'ID qui est auto-incrémenté (A.I) donc pas besoin de le préciser, c'est automatique. De plus tu devrais avoir un retour d'erreur SQL, si ce n'est pas le cas il faut l'activer.

                                exemple du cours :

                                <?php
                                $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                ?>

                                Autre exemple, créer un fichier condb.php à inclure quand tu en as besoin : (define = constante, pas de variables)

                                define("HOST",        "localhost");   	// en local par defaut
                                define("DB_NAME",     "auto");          // dbname
                                define("ROOT",        "root");	        // utilisateur root
                                define("MDPASS",      "");		        // mdp
                                
                                // Connexion à la base de données
                                try
                                {
                                 $objetPdo = new PDO('mysql:host='.HOST.';dbname='.DB_NAME.';charset=utf8', ''.ROOT.'',''.MDPASS.'');
                                 $objetPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                }
                                catch (PDOException $e) {
                                    print "Erreur de connexion, désolé... " . $e->getMessage() ; die();
                                }






                                -
                                Edité par Lucky13 23 juin 2017 à 18:21:16

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  23 juin 2017 à 18:58:16

                                  c est vraiment étrange car quand j 'essaye de créer une table, cela me demande le nom ainsi que le nombre de colonne. c 'est ce que j'ai fait . 

                                  et dans chaque colone j'insère le nom et le reste . 

                                  Est-ce corrêcte ? 

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 juin 2017 à 19:09:45

                                    Avec phpmyadmin oui, mais tu as quand même le choix de choisir l'interclassement (utf8 unicode-ci) et le type de champ...

                                    Pourquoi veh est un int(200) , c'est bien le nom de véhicule non ?

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      23 juin 2017 à 19:42:24

                                      non c fait ça été modifier, mais je ne comprends ce que tu veux dire par le champ 

                                      surtout ceci 

                                      $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, date1, etc...)
                                      VALUES(NULL, :veh, :date1, :heure3, :ville3, :vol3, :lieu3, :date2, :heure,:ville, :vol, :lieu,)');
                                      

                                      je l'ai modifié en comme demandé en ça : 

                                      <?php 
                                      
                                      //ouverture d'une connexion à la BDD
                                      
                                      	$objetPdo = new PDO('mysql:host=127.0.0.1;dbname=auto','root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                      
                                      //préparation de la requête d'insertion (SQL)
                                      
                                      	$pdoStat = $objetPdo->prepare('INSERT INTO open (veh, date1, heure3, ville3, vol3, lieu3, date2, heure, ville, vol, lieu,)
                                      	VALUES(NULL, :veh, :date1, :heure3, :ville3, :vol3, :lieu3, :date2, :heure,
                                      	:ville, :vol, :lieu,)');
                                      	
                                      // on relie charque marqueur à une valeur

                                      Maintenant j'obtien l'erreur suivante : 

                                      Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES(NULL, '7', '15/06/2017', '12', 'Marrakech', '', '', '', '12', 'Marr' at line 1' in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php:30 Stack trace: #0 C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php(30): PDOStatement->execute() #1 {main} thrown in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php on line 30




                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        23 juin 2017 à 20:48:10

                                        Il peut y avoir plusieurs raisons, j'en vois déjà une : les Virgules en trop. :

                                            $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, date1, heure3, ville3, vol3, lieu3, date2, heure, ville, vol, lieu,)

                                            VALUES( :veh, :date1, :heure3, :ville3, :vol3, :lieu3, :date2, :heure,:ville, :vol, :lieu,)');

                                        Ensuite que vois si tu fais un var_dump($_POST) juste avant l(insertion en DB? si le type d'un champ ne correspond au type de paramètre alors cela produit une erreur.

                                        -
                                        Edité par Lucky13 23 juin 2017 à 20:51:40

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          23 juin 2017 à 21:46:04

                                          :-( c'est vraiment incroyable, ça ne s'ajoute pas à la BD avec plusieurs tests nada

                                          Voilà je m'éexplique ;  j'ai complétement supprimé le formulaire et laissé uniquement 2 champs à introduire dans la bdd 

                                          Formulaire2.html 

                                          <!doctype html>
                                          <html>
                                          <head>
                                          <meta charset="utf-8">
                                          <title>Formulaire d'insertion à la BDD</title>
                                          </head>
                                          
                                          <body>
                                          <form action="ajout2.php" id="form_reser" method="POST">
                                            <span>Véhicule : </span>
                                            <select name="voiture" class="voiture">
                                              <option value="7">Ford Fiesta</option>
                                              <option value="8">Renault Symbol</option>
                                              <option value="9">Clio 4 </option>
                                              <option value="10">Peugeot 301</option>
                                              <option value="13">Toyota Land Cruiser Automatique  Turbo </option>
                                              <option value="14">Toyota Land Cruiser Manuel  Turbo</option>
                                              <option value="16"> Mitsubishi Pajero Sport Turbo </option>
                                              <option value="17">Hyundai 6 places</option>
                                              <option value="18">Minibus 9 places avec ou sans chauffeur</option>
                                              <option value="19">Ford 12 places</option>
                                              <option value="20">Fiat Ducato 14 places</option>
                                              <option value="21">Fiat Ducato 17 places</option>
                                              <option value="24">Renault Lodgy 7 Personnes</option>
                                              <option value="25">Jeep Cherokee </option>
                                              <option value="27">Range Rover Evoque</option>
                                              <option value="28">Range Rover Vogue</option>
                                              <option value="30">Hyundai Accent Automatique</option>
                                            </select>
                                            <br />
                                            <table width="100%">
                                              
                                              <tr>
                                                
                                                <tr>
                                                  <td><label>Lieu</label></td>
                                                  <td colspan="3"><input type="text" name="lieuarrivee"  /></td>
                                                </tr>
                                              </table>
                                          	
                                            </div>
                                            </div>
                                            </div>
                                            <input type="submit" >
                                          </form>
                                          <p>&nbsp;</p>
                                          </body>
                                          </body>
                                          </html>
                                          


                                          Ensuite au niveau de du fichier ajout.php ; 

                                          <?php 
                                          
                                          var_dump($_POST);
                                          
                                          //ouverture d'une connexion à la BDD
                                          
                                          $objetPdo = new PDO('mysql:host=127.0.0.1; dbname=auto','root','');
                                          
                                          $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, lieuarrivee,)VALUES :veh,:lieuarrivee,)');
                                          
                                          // on relie charque marqueur à une valeur
                                          
                                          $pdoStat->bindValue(':veh', $_POST['voiture'], PDO::PARAM_STR);
                                          
                                          $pdoStat->bindValue(':lieuarrivee', $_POST['lieuarrivee'],PDO::PARAM_STR);
                                          
                                          // on éxécute la requête
                                          
                                          $insertIsOk = $pdoStat->execute();
                                          
                                          if($insertIsOk){
                                          
                                          $message = 'les données ont été ajoutés';
                                          
                                          }
                                          
                                          else{
                                          
                                          $message = 'echec';
                                          
                                          }
                                          
                                          ?>
                                          
                                          <html>
                                          
                                          <body>
                                          
                                          <title>Page d'insertion</title>
                                          
                                          <h1><?php echo $message;?></h1>
                                          
                                          </body>
                                          
                                          </html>


                                          Le vardump --> array(2) { ["voiture"]=> string(1) "7" ["lieuarrivee"]=> string(13) "aeroport " }

                                          rien ne semble fonctionner . d'après toi il y'a encore des erreurs ? 

                                          après activation de l'erreur sql : 

                                          Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')VALUES '7','taner',)' at line 1' in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php:19 Stack trace: #0 C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php(19): PDOStatement->execute() #1 {main} thrown in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php on line 19



                                          d avance merci 

                                          -
                                          Edité par elkhattabifouad 23 juin 2017 à 21:51:34

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            23 juin 2017 à 21:54:45

                                            Et oui SQL ne pardonne aucune incohérence,  c'est sécurisant ;)

                                            Tu n' as encore pas supprimé tes virgules  ( lieuarrivee ,)

                                            $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, lieuarrivee,)VALUES :veh,:lieuarrivee,)');

                                            Correction: 

                                            $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, lieuarrivee) VALUES ( :veh, :lieuarrivee)');

                                            De plus :

                                            Le champ veh attend un type INT et toi tu insères une String (chaine de caractère)

                                            fait une copie de ta table, renome la, ne garde que les 2 premiers champs et change ta requête PHP pour tester.

                                            Il doit y avoir d'autres erreurs, il faut soit refaire la table, soit les éliminer unes à unes...

                                            ps: a quoi ressemble le format de ["lieuarrivee"]=> string(13) ??


                                            -
                                            Edité par Lucky13 23 juin 2017 à 22:05:01

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 juin 2017 à 22:10:47

                                              Meme erreur malgré que j'ai corrigé la ligne ainsi que la bdd . ce n'est vraiment pas possible . je pète un câble c'est depuis 16h que je modifie 

                                              Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'voiture' in 'field list'' in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php:19 Stack trace: #0 C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php(19): PDOStatement->execute() #1 {main} thrown in C:\Program Files\EasyPHP-Devserver-17\eds-www\fouad\ajout2.php on line 19

                                              <?php 
                                              
                                              
                                              
                                              //ouverture d'une connexion à la BDD
                                              
                                              	$objetPdo = new PDO('mysql:host=127.0.0.1;dbname=auto;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                              
                                              
                                              $pdoStat = $objetPdo->prepare('INSERT INTO open (voiture, lieuarrivee) VALUES ( :veh, :lieuarrivee)');	
                                              
                                              // on relie charque marqueur à une valeur
                                              
                                              	$pdoStat->bindValue(':veh', $_POST['voiture'], PDO::PARAM_STR);
                                              	$pdoStat->bindValue(':lieuarrivee', $_POST['lieuarrivee'],PDO::PARAM_STR);
                                              
                                              // on éxécute la requête
                                              	
                                              		$insertIsOk = $pdoStat->execute();
                                              		
                                              		if($insertIsOk){
                                              			$message = 'les données ont été ajoutés';
                                              		}
                                              		else{
                                              			$message = 'echec';
                                              		}
                                              ?>
                                              
                                              <html>
                                              <body>
                                              
                                              <title>Page d'insertion</title>
                                              
                                              <h1><?php echo $message;?></h1>
                                              
                                              
                                              </body>
                                              </html>
                                              



                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                23 juin 2017 à 22:29:41

                                                :D oui la colonne voiture n'existe pas, regarde bien ta capture

                                                Seulement depuis 16h ? moi il m'arrive de passer 1 semaine sur un problème, c'est donc tout à fait normal, pas de panique...

                                                Bon déjà varchar de 255 = tinytext, juste pour info. Tu es en Suèdois, régler cela une fois ton souci résolu.

                                                essais ceci : 

                                                $pdoStat = $objetPdo->prepare('INSERT INTO open (veh, lieuarrivee) VALUES ( :veh, :lieuarrivee)');  



                                                -
                                                Edité par Lucky13 23 juin 2017 à 22:32:00

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  23 juin 2017 à 22:54:40

                                                  Pour info, il ne peut être un souci de easy php ? 

                                                  car là, j'ai laisser un seul champ, lieuarrivee et malgé cela même message d 'erreur . 

                                                  Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]:  --> qui correspond à la ligne 18 qui est : 

                                                  $insertIsOk = $pdoStat->execute();

                                                  <?php 
                                                  
                                                  
                                                  
                                                  //ouverture d'une connexion à la BDD
                                                  
                                                  	$objetPdo = new PDO('mysql:host=127.0.0.1;dbname=auto;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                  
                                                  
                                                  $pdoStat = $objetPdo->prepare('INSERT INTO open (lieuarrivee) VALUES (:lieuarrivee)');
                                                  
                                                  // on relie charque marqueur à une valeur
                                                  
                                                  	$pdoStat->bindValue(':lieuarrivee', $_POST['lieuarrivee'],PDO::PARAM_STR);
                                                  
                                                  // on éxécute la requête
                                                  	
                                                  		$insertIsOk = $pdoStat->execute();
                                                  		
                                                  		if($insertIsOk){
                                                  			$message = 'les données ont été ajoutés';
                                                  		}
                                                  		else{
                                                  			$message = 'echec';
                                                  		}
                                                  ?>
                                                  
                                                  <html>
                                                  <body>
                                                  
                                                  <title>Page d'insertion</title>
                                                  
                                                  <h1><?php echo $message;?></h1>
                                                  
                                                  
                                                  </body>
                                                  </html>
                                                  

                                                  formulaire2

                                                  <!doctype html>
                                                  <html>
                                                  <head>
                                                  <meta charset="utf-8">
                                                  <title>Formulaire d'insertion à la BDD</title>
                                                  </head>
                                                  
                                                  <body>
                                                  <form action="ajout2.php" method="POST">
                                                    
                                                        
                                                        <tr>
                                                          <td><label>Lieu</label></td>
                                                          <td colspan="3"><input type="text" name="lieuarrivee"  /></td>
                                                        </tr>
                                                      </table>
                                                  	
                                                    </div>
                                                    </div>
                                                    </div>
                                                    <input type="submit" >
                                                  </form>
                                                  <p>&nbsp;</p>
                                                  </body>
                                                  </body>
                                                  </html>
                                                  

                                                  bdd 




                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    23 juin 2017 à 23:06:18

                                                    Ok bon je vais faire un test de mon côté... et non ton serveur avec easyPhp n'y est pour rien...

                                                    Voilà c'est fait.

                                                    Captures de ma base de données : open

                                                    Structure:

                                                    Le code PHP de test: 

                                                    <?php
                                                    
                                                    define("HOST",        "localhost");     // en local par defaut
                                                    define("DB_NAME",     "open");          // dbname
                                                    define("ROOT",        "root");          // utilisateur root
                                                    define("MDPASS",      "");              // mdp
                                                     
                                                    // Connexion à la base de données
                                                    try
                                                    {
                                                     $objetPdo = new PDO('mysql:host='.HOST.';dbname='.DB_NAME.';charset=utf8', ''.ROOT.'',''.MDPASS.'');
                                                     $objetPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                                    }
                                                    catch (PDOException $e) {
                                                        print "Erreur de connexion, désolé... " . $e->getMessage() ; die();
                                                    }
                                                    
                                                    $_POST['voiture'] =  'Alafa Roméo 156 V3.0';
                                                    
                                                    // **********************
                                                    $pdoStat = $objetPdo->prepare('INSERT INTO t_test (veh, lieu_arrivee) VALUES ( :veh, now() )');  
                                                     $pdoStat->bindValue(':veh', $_POST['voiture'], PDO::PARAM_STR);
                                                     
                                                    // on éxécute la requête
                                                         
                                                            $insertIsOk = $pdoStat->execute();
                                                             
                                                            if($insertIsOk){
                                                                $message = 'les données ont été ajoutés';
                                                            }
                                                            else{
                                                                $message = 'echec';
                                                            }
                                                    		
                                                    		echo $message;



                                                    résultat : 

                                                    -
                                                    Edité par Lucky13 23 juin 2017 à 23:24:31

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      24 juin 2017 à 0:19:42

                                                      Tiens c est vraiment étrange  et d ou mon souci peu provenir? 

                                                      Pcq dmon formulaire ajout je pense su il est correcte.  Je vais faire un test avec ton code pour voir si cela fonctionne.

                                                      Merci bcp en te cas. 

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        24 juin 2017 à 0:59:13

                                                        Comme je l'ai dit s'il y a un souci de correspondance entre le typage des champ et variables alors impossible d'enregistrer, et c'est une bonne chose.

                                                        Il est parfois difficile de retrouver le "truc" qui cloche, c'est pour cela qu'il faut bien construire la table, le code PHP ne fait que suivre la cohérence.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          24 juin 2017 à 2:25:18

                                                          :-) j'ai refais exactement la même table que la tienne avec le même code et cela semble fonctionner . 

                                                          Ceci dis, pourquoi $_POST['voiture'] =  'Alafa Roméo 156 V3.0';

                                                          j'ai un insertion à la BD qui est Alafa Roméo 156 V3.0 et non ce que j'ai sélectionné dans le champ voiture. 

                                                          MErci

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            24 juin 2017 à 11:36:23

                                                            Je me suis concentré sur la partie serveur + sql. j'ai donc créer un $_post[] pour m'éviter de faire un formulaire HTML pour le test ^^ 

                                                            Si tu reprend ton formulaire + validation : dans cible.php fais un print_r($_POST) et poste la capture. Pour les dates le format SQL est à respecter est important.

                                                            -> https://openclassrooms.com/courses/mysql-et-les-donnees-temporelles  la moindre erreur est fatale. 

                                                            Ce que je ferais à ta place, je m'exerce avec un formulaire  simplifié + la table correspondante.

                                                            le véhicule + la date de réservation -> type date + time et faire l'insertion.

                                                            etape 2 : rajouter l'arrivée : type time.

                                                            Note que le format datime permet de simplifier ta mise en place pour le calcul puisque tu peux accéder à toutes les infos: depuis un datetime tu peux extraire le jour, l'année, l'heure + minutes, voir les secondes...

                                                            exemple : reservation et arrivé = type datetime 

                                                            puis -> https://openclassrooms.com/courses/mysql-et-les-donnees-temporelles#/id/r-1104609 

                                                            Ces 2 liens pour travailler le temps en PHP, manuel en ligne :

                                                            Format -> http://php.net/manual/fr/function.date.php 

                                                            Options -> http://php.net/manual/fr/ref.datetime.php  

                                                            Avec tout cela tu peux facilement mettre en place le concept de ton choix, exerces toi avec un formulaire simplifié.

                                                            -
                                                            Edité par Lucky13 24 juin 2017 à 11:52:45

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              24 juin 2017 à 16:03:02

                                                              Salut, 

                                                              Finalement, j'ai réussi comprendre l'erreur si je puisse dire et c'est grâce à toi . 

                                                              l'erreur était située dans le "INSERT TO" il fallait respecter l'ordre des champs de la base de donné .

                                                              Exemple de la ligne qui provoquait l'erreur ; 

                                                              $pdoStat = $objetPdo->prepare('INSERT INTO t_test (veh, lieu_arrivee, ville) VALUES ( :veh, now() )');

                                                              En effet, quand je place par exemple "ville," avant "lieu_arrivee" cela provoque erreur fatal. et quand je place

                                                              ville avant lieu_arrivee les donnés s'ajoutent dans la bdd . 

                                                              exemple  qui a fonctionnée pour le moment est : 

                                                              // **********************
                                                              $pdoStat = $objetPdo->prepare('INSERT INTO t_test (veh, carburant, portes,climatisation, passagers, prix, lieu_arrivee) 
                                                              VALUES ( :veh, :carburant, :portes, :climatisation, :passagers, :prix, now() )'); 
                                                               
                                                               $pdoStat->bindValue(':veh', $_POST['voiture'], PDO::PARAM_STR);
                                                               $pdoStat->bindValue(':carburant', $_POST['carburant'], PDO::PARAM_STR);
                                                               $pdoStat->bindValue(':portes', $_POST['portes'], PDO::PARAM_STR);
                                                               $pdoStat->bindValue(':climatisation', $_POST['climatisation'], PDO::PARAM_STR);
                                                               $pdoStat->bindValue(':passagers', $_POST['passagers'], PDO::PARAM_STR);
                                                               $pdoStat->bindValue(':prix', $_POST['prix'], PDO::PARAM_STR);


                                                               Comme cité ci-dessus, si je place le lieu_arrivee avant ou après le carburant ( j'ai une erreur )

                                                              ;-)  

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Besoin d'aide pour formulaire HTLM

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown