Page 1 sur 2
probleme date
Posté : 11 déc. 2006, 11:19
par Invité
Bonjour,
Voila comme le titre l'indique j'ai un souci avec les dates.
<input name="sub" type="image" onClick="<?php $datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"] ?>" src="../image/bouton/button1F.gif" width="115" height="23" border="0">
Je sais que mon souci se trouve a ce niveau (&). Il n'apprecit pas que je lui envoie les deux dates, de quel manière est-ce que je peux faire.
merci
Posté : 11 déc. 2006, 12:08
par Ryle
Ton soucis se situe surtout dans le fait que tu mélanges php et javascript. Le premier s'exécute côté serveur et permet de générer ta page, le second tourne côté client et permet d'interragir directement avec l'utilisateur.
La seule interraction entre ces deux langages, c'est que php peut générer du code javascript lorsqu'il construit la page, mais ça s'arrête là

Posté : 11 déc. 2006, 12:25
par Invité
je ne comprend pas pourquoi les deux ne s'execute pas de la même manière. De quel manière est-ce que je peux faire pour avoir acces au deux dates ?
merci
Posté : 11 déc. 2006, 12:33
par Ryle
Comment ça "pourquoi les deux ne s'exécutent pas de la même manière" ? Ce sont deux langages de programmation différents, destinés chacun à une utilisation différente
Si on analyse ton code, voici ce qui se passe sur le serveur (puisque le php est exécuté en premier)
1. $datedeb=$_REQUEST["datdeb"] // affecte la valeur contenue dans $_REQUEST["datdeb"] à la variable $datedeb. Cette action est toujours vraie.
2. $datefin=$_REQUEST["datfin"] // affecte la valeur contenue dans $_REQUEST["datfin"] à la variable $datefin. Cette action est toujours vraie.
3. evalue l'expression "$datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"]" // la première retourne vraie, la seconde retourne vraie, le résultat est donc vrai.
// Jusqu'ici, il n'y a rien d'affiché, rien de contrôlé, aucun traitement solicité, le contenu des balises php ne produira donc rien.
4. génère le code HTML envoyé au navigateur :
<input name="sub" type="image" onClick="" src="../image/bouton/button1F.gif" width="115" height="23" border="0">
Je ne sais pas ce que tu souhaites faire, mais tu ne pars vraissemblablemet pas du tout dans la bonne direction

Posté : 11 déc. 2006, 12:55
par Invité
En faite j'ai mon formulaire :
<form name="enreg" method="post" action="">
<p align="center" class="Style1"><span class="Style2">Veuillez saisir la date de début souhaité : </span>
<INPUT NAME=datdeb TYPE=text id="datdeb" VALUE="<?php echo $_REQUEST["datdeb"]; ?>" size="10" maxlength="10">
<span class="Style2">La date de fin : </span>
<INPUT NAME=datfin TYPE=text id="datfin" VALUE="<?php echo $_REQUEST["datfin"]; ?>" size="10" maxlength="10">
<input name="sub" type="image" onClick="<?php $datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"] ?>" src="../image/bouton/button1F.gif" width="115" height="23" border="0">
</form>
qui affiche ensuite :
<?php
if (($datedeb !="") & ($datefin !=""))
{
list($jour, $mois, $annee) = explode("/", $datedeb);
$datedeb = $annee.'-'.$mois.'-'.$jour;
list($jour, $mois, $annee) = explode("/", $datefin);
$datefin = $annee.'-'.$mois.'-'.$jour;
echo $datedeb.' '.$datefin;
Le souci c'est que si je rentre :
-datdeb =12/01/2006
-datfin =12/12/2006
et cela m'affiche : 2006-00-12 2006-12-12
je ne voie pas le souci!!!
Posté : 11 déc. 2006, 13:20
par 2501gigi
c'est quoi le soucis c'est que sa affiche sur la meme ligne ou en année,moi,jour?
Ou c'est autre chose je ne vois pas bien ?
Posté : 11 déc. 2006, 13:21
par 2501gigi
c'est quoi le soucis c'est que sa affiche sur la meme ligne ou en année,moi,jour?
Ou c'est autre chose je ne vois pas bien ?
Posté : 11 déc. 2006, 14:20
par Invité
non le souci c'est que cela ne m'affiche pas la bonne date
2006-00-12 a la place de 2006-01-12
Posté : 11 déc. 2006, 15:00
par iclo
Et dans phpMyAdmin, qu'est-ce qui est affiché ? Commençons par savoir si c'est l'affichage ou l'insertion qui foire.
Posté : 11 déc. 2006, 15:04
par Invité
je n'uilise rien de mysql pour se cas, je saisie juste deux date et je demande de les afficher au format mysql (pour ensuite l'utiliser bien ententu dans des requete, mais pour l'instant j'ai deja un probleme pour faire afficher les deux date au format mysql.
Posté : 11 déc. 2006, 15:34
par Ajoloca
Bonjour,
MySQL te permet de transformer la date avec la fonction "DATE_FORMAT(date, 'format')"
Mais si tu veux absolument le faire en PHP voici un petit bout de code qui fonctionne
<?php
function dateFrToSQL($dateFr){
list($jour, $mois, $annee) = explode('/', $dateFr);
return ($annee . '-' . $mois . '-' . $jour);
}
$dateDeb = '12/01/2006';
$dateFin = '12/12/2006';
echo 'Date Deb Fr : ' . $dateDeb . ' *** Date Deb DB : ' . dateFrToSQL($dateDeb) . '<br />';
echo 'Date Fin Fr : ' . $dateFin . ' *** Date Fin DB : ' . dateFrToSQL($dateFin) . '<br />';
?>
Le résultat
Code : Tout sélectionner
Date Deb Fr : 12/01/2006 *** Date Deb DB : 2006-01-12
Date Fin Fr : 12/12/2006 *** Date Fin DB : 2006-12-12
Posté : 11 déc. 2006, 15:47
par Invité
ma fonction marche correctement, je pense vraiment que le probleme se situe a se niveau car lorsque je mets
<?php $datedeb=$_REQUEST["datdeb"] ?>
à la place de
<?php $datedeb=$_REQUEST["datdeb"] & $datefin=$_REQUEST["datfin"] ?>
cela fonctionne. Faut-t-il que je mette autre chose a la place de & ?
merci
Posté : 11 déc. 2006, 15:52
par iclo
Que vient faire un & entre deux opérations d'affectations ? il faut séparer les deux opérations par ;
ps: il vaut mieux utiliser les constantes super global $_POST et $_GET pour récupérer des données. (ici le formulaire étant en post)
Posté : 11 déc. 2006, 15:53
par Ajoloca
Re,
Si ce que tu veux c'est de séparer les deux dates par '&' tu doit l'écrire comme ceci (je te parle au niveau syntaxique, pas fonctionnel)
<?php echo 'datedeb=' . $_REQUEST["datdeb"] . '&datefin=' . $_REQUEST["datfin"] ?>
Posté : 11 déc. 2006, 15:54
par Invité
grace a la reponse de iclo problème resolu, je n'avai pas penser mettre un ; à la place d'un & et maintenant cela marche.
Encore merci iclo