Bonjour,
Sachez que je suis vraiment un débutant qui ne demande qu'à apprendre. Il s'agit également de mon premier post alors soyez indulgent si je n'ai pas tout fait correctement.
Je souhaiterais vérifier au fur et à mesure de la frappe le format de l'heure et qu'il intègre automatiquement ":" dès que le 2eme chiffre est entré (OnKeyUp peut-être?) et ainsi pouvoir entrer les suivants.
Le problème pourrait également être le même pour une date de naissance, non?
Actuellement, je sait remplacer le caractère autre qu'un chiffre par mon ":", mais je me rends compte qu'il serait infiniment plus simple pour l'utilisateur de ne se préoccuper que des chiffres qu'il entre.
Je pense avoir réduit la page au strict minimum. Sauf pour la partie JavaScript qui me pose un réel problème.
Si quelqu'un pouvait me sortir de l'impasse dans laquelle je suis depuis plus d'une semaine, ce serait sympa.
Merci pour votre aide.
<?php
//INITIALISATION DES VARIABLES
$heure_debut=(isset($_POST["heure_debut"])) ? $_POST["heure_debut"] : "hh:mm";
$heure_fin=(isset($_POST["heure_fin"])) ? $_POST["heure_fin"] : "hh:mm";
$submit=(isset($_POST["submit"])) ? $_POST["submit"] : Null;
$envoye=(isset($_POST["envoye"])) ? $_POST["envoye"] : Null;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="fr">
<head>
<title>Ajouter</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript" src="../include/jquery.js"></script>
<script type="text/javascript">
<!--
function FormatHeure(obj){
temp=obj.value;
temp2='';
temp=temp.replace('-',':');
temp=temp.replace('h',':');
temp=temp.replace('/',':');
temp=temp.replace(' ',':');
temp=temp.replace('.',':');
temp=temp.replace('+',':');
temp=temp.replace('*',':');
temp=temp.replace('!',':');
temp=temp.replace(';',':');
temp=temp.replace(',',':');
temp=temp.replace('?',':');
j=temp.length;
for (i=0;i<j;i++){
ch_test=temp.charAt(i);
if ((ch_test>='0') && (ch_test<='9')) temp2+=ch_test;
if ((temp2.length>0) && (ch_test==':')) temp2+=':';
}
heure=temp2.substr(0,(temp2.indexOf(':')));
temp2=temp2.substr(temp2.indexOf(':')+1,10);
minutes=temp2.substr(0,10);
heure_valable=Array('',23);
minutes_valable=Array('',59);
if ((minutes<0)|| (minutes>59)){ alert('Heure non valide');obj.value='';return; }
if ((heure<0) || (heure>23)) { alert('Heure non valide');obj.value='';return; }
heure=Math.floor(heure*1);
minutes=Math.floor(minutes*1);
//alert(heure+':'+minutes);
temp3='';
if (heure<10){ temp3=temp3.concat('0',heure,':'); } else { temp3=temp3.concat(heure,':'); }
if (minutes<10){ temp3=temp3.concat('0',minutes); } else { temp3=temp3.concat(minutes); }
obj.value=temp3;
}
-->
</script>
</head>
<?php
//CONTROLE DES SAISIE ET TRAITEMENT (ICI AFFICHAGE)
if ($submit=='Ajouter' AND $envoye=='1' AND $heure_debut!="hh:mm" AND $heure_fin!="hh:mm" AND $heure_debut!="" AND $heure_fin!="") {
echo "$heure_debut
";
echo "$heure_fin
";
echo "Les infos sont transmises
";
echo "Retour";
} else {
//FORMULAIRE DE SAISIE
?>
<form method="post" action="index.php">
<label for="heure_debut">heure_debut</label>
" maxlength="5" OnFocus="this.value='';" OnBlur="FormatHeure(this)">
<label for="heure_fin">heure_fin</label>
" maxlength="5" OnFocus="this.value=''"; OnBlur="FormatHeure(this)">
</form>
<?php
}
?>
</html>