Passer une date javascript vers une bdd sql
Résolu
Akabane12
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans un formulaire, j'ai déclaré un bouton de type button qui éxécute une fonction javascript au click.
Cette fonction récupère la date et l'heure actuelle et l'enregistre dans un champ de type hidden afin d'être conservée dans un tableau POST.
L'enregistrement du formulaire provoque la redirection vers un script php ayant pour fonction l'éxécution de requêtes SQL.
Je récupère donc la valeur de ma variable :
La requête en question est un INSERT :
Le champ destiné a recevoir la valeur de la date dans la BDD est un datetime.
Mon problème est que losque je consulte les enregistrements, la valeur de la date est égale à : "0000-00-00 00:00:00".
J'ai effactué un echo "$variable4"; à la fin du script php et il m'affiche bien la date et l'heure normale.
Je pense donc que le problème vient de la compatibilité des formats heure et date entre JavaScript et la BDD SQL.
Or, étant assez novice en programmation, je n'ai toujours pas réussi a résoudre ce problème (j'ai tenté de modifier les formats des deux cotés sans résultat).
Si quelqu'un pourrait m'éclairer, ce serait sympa.
Merci d'avance.
Dans un formulaire, j'ai déclaré un bouton de type button qui éxécute une fonction javascript au click.
Cette fonction récupère la date et l'heure actuelle et l'enregistre dans un champ de type hidden afin d'être conservée dans un tableau POST.
<script language='javascript'> function enregistrer2() { [...] //déclaration de la variable pour la date var valeur4 = new Date(); //enregistrement de la valeur dans le hidden document.getElementById('hidheuredebut').value = valeur4.toLocaleString(); [...] } </script>
L'enregistrement du formulaire provoque la redirection vers un script php ayant pour fonction l'éxécution de requêtes SQL.
Je récupère donc la valeur de ma variable :
$valeur4 = $_POST['HidHeureDebut'] ;
La requête en question est un INSERT :
$sql4 = 'INSERT INTO 'travaux' ('Piece', 'Operation', 'Operateur', 'Date_heure_debut', 'Date_heure_fin') VALUES ("'.$valeur3.'", "'.$valeur2.'", "'.$valeur1.'", "'.$valeur4.'", "'.$valeur5.'");'; $result4 = mysql_query($sql4)
Le champ destiné a recevoir la valeur de la date dans la BDD est un datetime.
Mon problème est que losque je consulte les enregistrements, la valeur de la date est égale à : "0000-00-00 00:00:00".
J'ai effactué un echo "$variable4"; à la fin du script php et il m'affiche bien la date et l'heure normale.
Je pense donc que le problème vient de la compatibilité des formats heure et date entre JavaScript et la BDD SQL.
Or, étant assez novice en programmation, je n'ai toujours pas réussi a résoudre ce problème (j'ai tenté de modifier les formats des deux cotés sans résultat).
Si quelqu'un pourrait m'éclairer, ce serait sympa.
Merci d'avance.
A voir également:
- Passer une date javascript vers une bdd sql
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Passer une ligne dans une cellule excel - Guide
- Telecharger javascript - Télécharger - Langages
- Comment transferer une boite mail vers une autre - Guide
Peut être aussi que le problème ne vient pas de la...
Cependant j'aurais besoin en consultant ma base de donnée que l'enregistrement retourné me renvoie une date et une heure directement afin de ne pas avoir de convertion a faire a chaque fois.
S'il existe une requête sql pouvant le faire automatiquement, alors oui sa peut être une solution.
Aussi, j'ai plusieures heures différentes a récupérer dans le même formulaire et sans recharger la page, je n'ai donc trouvé que cette solution.
Je n'ai pas encore essayé, mais je pense que si je patine trop je changerais le datetime de la BDD pour un banal varchar qui me retournerais ma valeur telle quelle :)
voici un fonction de conversion,
des que tu recupere un timestamp (exemple ta variable $ma_date)
tu fais
1 -> renvoi la date sous le format 29/06/2010
2 -> 29/06/2010 - 16h00
ce petit bout de code sera placé a un seul endroit dans un fichier que tu appelleras sous forme d'un include sur chacune de tes pages
ps : tester des dates en timestamp est beaucoup plus pratique ^^
Je ne m'attendais pas a cette méthode, mais c'est plutôt efficace.
Je suis en stage, c'est pour cette raison que je préférais me casser un peu la tête, mais arrivant a son terme, je devais tout de même trouver une solution ;)
Donc merci a toi pour ton aide et a charge de revanche (même si je doute pouvoir t'aider grandement dans ce domaine :p)