bonjour j'ai un code php et il y a une formulaire html de-dans, et le input date de mon formulaire ne retourne pas la date que je selectionne et je ne comprend pas pourquoi, si quelqu'un peux me dire ou se trouve mon probléme, voila mon code
<?php
include("header_date.php");
?>
<?php
$hostdb = 'localhost';
$userdb = 'root';
$passdb = '';
$namedb = 'mfb';
try
{
$conn = new PDO("mysql:host=".$hostdb."; dbname=".$namedb."", $userdb, $passdb, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$conn->exec("SET CHARACTER SET utf8");
}
catch (PDOException $e)
{
echo 'La base de donnée n\'est pas disponible';
}
$erreur_requete = null;
$tableau_ville = array();
try
{
if(isset($_POST['bouton']))
{
$stmt = $conn->prepare("INSERT INTO projet(projet_id, projet_nom, projet_descr, projet_debut, projet_fin) VALUES ( ?, ?, ?, ?, ?)");
$stmt->execute(array($_POST['ID'],$_POST['Nom'],$_POST['Description'],$_POST['Debut'],$_POST['Fin']));
print_r($stmt->errorInfo());
header('Location: projet.php');
exit;
}
else
{
$req = "SELECT * FROM projet";
$res = $conn->query($req);
$tableau_projet = $res->fetchAll(PDO::FETCH_ASSOC);
$res->closeCursor();
}
}
catch(PDOException $e)
{
$erreur_requete = "Problème dans la requête";
$erreur_requete .= " : ".$e->getMessage();
}
?>
<div>
<?= isset($erreur_requete) ? $erreur_requete : '';?>
</div>
<script>
$(function() {
$( "#Debut" ).datepicker({
numberOfMonths: 2,
onClose: function( selectedDate ) {
$( "#Fin" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#Debut" ).datepicker({
numberOfMonths: 2,
onClose: function( selectedDate ) {
$( "#Fin" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
</script>
<form name="form" action="ajout_projet.php" method="POST" enctype="multipart/form-data" >
<fieldset>
<legend><em>Ajout d'un Projet</em></legend>
<table align="center">
<tr>
<td></td>
</tr>
<tr>
<td>
<label for="ChampCode">ID du projet:</label>
</td>
<td>
<input type="text" id="ID" name="ID" require/>
</td>
</tr>
<tr>
<td>
<label for="ChampNom">Nom du Projet:</label>
</td>
<td>
<input type="text" id="Nom" name="Nom" require/>
</td>
</tr>
<tr>
<td>
<label for="ChampDescription">Projet Description:</label>
</td>
<td>
<input type="text" id="Description" name="Description" require/>
</td>
</tr>
<tr>
<script>
$(function() {
$( "#from" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
</script>
<td>
<div class="demo">Début du projet: <td><input type="date" id="from" name="Debut"></td></div>
</td>
</tr>
<tr>
<td>
<div class="demo">Fin du projet: <td><input type="date" id="to" name="Fin"></td></div>
</td>
</tr>
<tr>
<td></td>
<td>
<form action="ajout_projet.php" method="POST">
<input type="submit" name="bouton" value="Ajouter" style="background-color: black;
width: 80px;
height:30px;
border-radius: 6px;
color: white;
font-family: algerian;
text-align: center;" />
<a href='projet.php'><input class='button' type='button' value='Annuler' style="background-color: black;
width: 80px;
height:30px;
border-radius: 6px;
color: white;
font-family: algerian;
text-align: center;"></a>
</form>
</td>
</tr>
</table>
</fieldset>
</form>
<?php
include("footer.php");
?>
Et ? Vous ne pouvez pas imbriquer 2 form ayant la même destination.
Enlever le form qui entoure le bouton et vous verrez que vos données seront bien envoyé vers la page de traitement.
En effet le submit est pas situé dans le bon formulaire , fait un
var_dump($_POST);
die();
tout en haut de ta page et fait un copier coller de ce qu'il y a dedans
D'après le code vous avez 2 forms imbriqués donc forcément ça ne risque pas de marcher.
De plus un peu plus de politesse et moins de ponctuation agressive seraient les bienvenues ;)
ah ok merci, mais j'ai déjà enlevée l'autre form mais ça ne change rien à mon probléme!!
Il manque les "d" aux "required" dans les inputs donc je préfère avoir le nouveau code afin de bien tout revérifier.
Quant est-il du nouveau code ? Est-ce que le problème est résolu ou non?
De plus, mettre des balises script dans un formulaire n'est pas correct.
le probléme vient donc du fait que mon SGBD ne reconnait que la date du forme 0000-00-00 mais non 00-00-0000 comme moi je fait.
Quel est le SGBD que tu utilises ?
Car sinon tu peux faire : ALTER SESSION SET NLS_DATE_FORMAT = "dd-mm-yyyy".
Ton SGBD est donc MySQL. Pour modifier une date, il faut que tu utilises la fonction DATE_FORMAT(date, format).aroundPour en savoir plus sur les formats de la date, je te laisse consulter ce lien si besoin :
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format