Champs texte rempli en Javascript

Résolu
djbabou
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
- Modifié par jordane45 le 7/05/2015 à 23:37
djbabou
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
- 11 mai 2015 à 17:26
Bonjour.
Je souhaiterai mettre en place un chronomètre sur mon site qui me permettra de stocker dans 1 fiche contact sur 1 Base de Données mysql, le temps passé par chaque personne. Le script est opérationnel pour la génération du chrono. Mais je n'arrive pas à stocker les infos en B.D (à chaque fois que j'insère les informations, il me retourne "00:00:00" pour mon champs temps ce qui me laisse à penser que l'input ne se remplit pas avec la valeur du temps).

<input type="text" id="time" style="width:50px !important;">


Et le javascript:
 var centi = 0;
 var sec = 0;
 var min = 0;
 var h = 0;
 var loc;
 var compt = 0;
 
 function chrono()
  {
   centi++;
   centi*10;//=======pour passer en dixièmes de sec
   //=== on remet à zéro quand on passe à 1seconde, 1min, 1heure, 1jour
   if (centi > 9) {
    centi = 0;
    sec++;
   }
        
   if (sec > 59) {
    sec = 0;
    min++;
   }
        
   if (min > 59) {
    min = 0;
    h++;
   }
        
   //======
   
   //================ On ajoute un zero pour avoir 1h01:05sec
   
   if (sec < 10) {
    var sec_ = "0" + sec;
   }
   else {
    var sec_ = sec;
   }
    
   if (min < 10) {
    var min_ = "0" + min;
   }
   else {
    var min_ = min;
   }
   //===============
        
   var loc = h + ":" + min_ + ":" + sec_ + ":" + centi;
   //================= Pour que cela s'affiche dans l'élément "time"
   document.getElementById("time").value = loc;
   //=================lancement du chrono
   reglage = window.setTimeout("chrono();",100);
  } 
 
 
 function debut()  //== Activation et désactivation des boutons
  {
    document.parametre.lance.disabled = "disabled";
    document.parametre.pause.disabled = "";
    document.parametre.zero.disabled = "";
    document.parametre.interme.disabled = "";
  }
 function arret() 
  { 
    window.clearTimeout(reglage); // arrêter le temps
    document.parametre.lance.disabled = "";
    document.parametre.pause.disabled = "disabled";
    document.parametre.zero.disabled = "";
    document.parametre.interme.disabled = "";
  }
  //=============
 function raz() //====pour remettre à zéro
  { 
    document.parametre.zero.disabled = "disabled";
    document.parametre.interme.disabled = "disabled";
    centi =0;
    sec = 0;
    min = 0;
    h = 0; 
    loc = h + ":" + min+ "0:" + sec + "0:" + centi; 
    document.getElementById("time").value = loc;
    document.getElementById('presenter').style.visibility='hidden';
  }
  
  function inter() //====Pour afficher les temps intermédiaires
  {
   centi;
   sec ;
   min ;
   h ;
   loc;
   //======on reprend la condition pour que ily ait 1h01 et 05 sec
   if (sec < 10) {
    var sec_ = "0" + sec;
   }
   else {
    var sec_ = sec;
   }
    
   if (min < 10) {
    var min_ = "0" + min;
   }
   else {
    var min_ = min;
   }
   
   ///=====================
    loc = h + ":" + min_ + ":" + sec_ + ":" + centi;
    //=====================
   document.getElementById('presenter').style.visibility='visible';
   // pour afficher les temps intermédiaire si on clique dessus
   if(compt == 0)
   document.getElementById("interm1").innerHTML = loc ;
   else if(compt == 1)
   document.getElementById("interm2").innerHTML = loc ;
   else if(compt == 2)
   document.getElementById("interm3").innerHTML = loc ;
   else if(compt == 3)
   document.getElementById("interm4").innerHTML = loc ;
   else if(compt == 4)
   document.getElementById("interm5").innerHTML = loc ;

   compt++;
   //=====================
  }
  
  function effacer()
  {
   document.getElementById("interm1").innerHTML = "" ;
   document.getElementById("interm2").innerHTML = "" ;
   document.getElementById("interm3").innerHTML = "" ;
   document.getElementById("interm4").innerHTML = "" ;
   document.getElementById("interm5").innerHTML = "" ;
   compt= 0
  }   

4 réponses

jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
7 mai 2015 à 23:42
Bonjour,


Mais je n'arrive pas à stocker les infos en B.D (à chaque fois que j'insère les informations, il me retourne "00:00:00" pour mon champs temps


- Qu'est ce qui ne fonctionne pas ... l'insertion en BDD (et dans ce cas.. montre nous ton code php) ... ou ton code Javascript ?

ce qui me laisse à penser que l'input ne se remplit pas avec la valeur du temps

Ben.. tu le vois à l'écran cet input ... et .... il contient quoi ??
Si il reste vide.. en effet.. ton souci se trouve au niveau de ton code JS .... par contre si il se rempli bien.. le souci est ailleurs.


0
djbabou
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015

Modifié par jordane45 le 11/05/2015 à 08:18
Bonjour et merci de la réponse.
En effet, a l'écran, l'input se remplit bien. C'est donc après qu'il y a un problème ? Voici donc mon code.
<form method="post" action="test.php" class="FormEmail" name="formulaire" id="formulaire" enctype="multipart/form-data" onSubmit="return checkform(this);">
<input type="text" id="time" style="width:50px !important;"> 


Et le fichier test.php (appelé après validation du formuaire)
$tempschrono = $_POST['time'];
$req2="update contact set telephone='".$_POST['telephone']."', mobile='".$_POST['portable']."', adresse='".$_POST['adresse']."', adressebis='".$_POST['adresse2']."', datedenaissance='".$_POST['datenaissance']."', email='".$_POST['email']."', tempscontact='".$tempschrono."' where identifiantcontact='".$_POST['identifiant']."'";
     $re=mysql_query($req2) or mysql_error();


--
0
jordane45
Messages postés
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
Modifié par jordane45 le 11/05/2015 à 09:13
Bonjour,

Je pense que ton souci vient du fait ... que tu n'as pas mis d'attribut NAME à ton input.

<input type="text" id="time" name="time" style="width:50px !important;">


Au passage, côté PHP, penses à récupérer tes variables avec ISSET AVANT de les utiliser.
Comme ceci :

//-------------------------------------------------------------------//
// Récupération des Variables
// En écriture TERNAIRE + Test de l'existence de la variable avec 
// la fonction isset
//-------------------------------------------------------------------//

$telephone     = isset($_POST['telephone'])?$_POST['telephone']:'';
$portable      = isset($_POST['portable'])? ?$_POST['portable']:'';
$adresse       = isset($_POST['adresse'])? ?$_POST['adresse']:'';
$adresse2      = isset($_POST['adresse2'])? ?$_POST['adresse2']:'';
$datenaissance = isset($_POST['datenaissance'])? ?$_POST['datenaissance']:'';
$email         = isset($_POST['email'])? ?$_POST['email']:'';
$identifiant   = isset($_POST['identifiant'])? ?$_POST['identifiant']:'';
$tempschrono   = isset($_POST['time'])?$_POST['time']:NULL;

if($tempschrono){
$sql="UPDATE contact 
   SET telephone='$telephone'
    , mobile='$portable'
    , adresse='$adresse'
    , adressebis='$adresse2'
    , datedenaissance='$datenaissance'
    , email='$email'
    , tempscontact='$tempschrono' 
 WHERE identifiantcontact='$identifiant'";
     $re=mysql_query($sql) or die("Error ! ".mysql_error()."<br> Requete : <br>".$sql);;
}



Cordialement,
Jordane
0
djbabou
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015

11 mai 2015 à 17:26
Ah salut et merci.
Effectivement, le problème a ainsi été résolu. Il m'a suffit de suivre tes recommandations quant à l'attribut name.

Merci
0