Champs texte rempli en Javascript [Résolu]

Signaler
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
-
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015
-
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

Messages postés
29965
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2020
338
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.


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

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();


--
Messages postés
29965
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 novembre 2020
338
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
Messages postés
155
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
23 novembre 2015

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