PHP-HTML formulaire
Résolu
chabinot
Messages postés
391
Statut
Membre
-
chabinot Messages postés 391 Statut Membre -
chabinot Messages postés 391 Statut Membre -
Bonjour,
J'ai un formulaire en html(php), ma page index est index.php
Voilà le code :
et le code php :
Quand je sélectionne une année, j'aimerais que l'année reste affichée, je sais qu'il faut jouer avec selected=selected. Mais, je veux qu'il me mette cela au niveau de la date sélectionnée.
Comment faire ?
Cordialement
J'ai un formulaire en html(php), ma page index est index.php
Voilà le code :
<form class="form" method="post">
<div class="form-group">
<label for="annee">Année</label>
<select class="select" name="annee" id="an">
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
</select>
<button type="submit" class="btn btn-success btn-sm">Envoyer</button>
</div>
</form>
et le code php :
<?php
// Autoloading
require './vendor/autoload.php';
// Date du jour
$date = new Date();
$year = date('Y');
$today = date('Ymd');
$dref = $year . '0630';
// Traitement du formulaire
if (!empty($_POST['annee'])) {
$annee = htmlspecialchars($_POST['annee']);
$year = $annee;
}
Quand je sélectionne une année, j'aimerais que l'année reste affichée, je sais qu'il faut jouer avec selected=selected. Mais, je veux qu'il me mette cela au niveau de la date sélectionnée.
Comment faire ?
Cordialement
A voir également:
- PHP-HTML formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Editeur html - Télécharger - HTML
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
3 réponses
Bonjour,
voila :
Au passage, je t'invite à lire ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
voila :
<?php
//fichier index.php
//-----------------------------------------------------------//
//activation des erreurs php
//-----------------------------------------------------------//
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//-----------------------------------------------------------//
// Autoloading
//-----------------------------------------------------------//
require './vendor/autoload.php';
//-----------------------------------------------------------//
// Date du jour
//-----------------------------------------------------------//
$year = date('Y');
$today = date('Ymd');
$dref = $year . '0630';
//-----------------------------------------------------------//
//Récupération propre des variables POST / GET / SESSION....
//-----------------------------------------------------------//
$annee = !empty($_POST['annee']) ? $_POST['annee'] : NULL;
?>
<form class="form" method="post" action="">
<div class="form-group">
<label for="annee">Année</label>
<select class="select" name="annee" id="an">
<?php
for($a = 2017 ; $a<=2021 , $a++){
$selected = $a == $annee ? ' selected="selected" ' : '';
echo '<option value="'.$a.'" '.$selected . '>'.$a.'</option>';
}
?>
</select>
<button type="submit" class="btn btn-success btn-sm">Envoyer</button>
</div>
</form>
Au passage, je t'invite à lire ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Bonjour,
Merci pour la réponse, cela marche très bien.
Encore un petit problème, j'ai une classe php Month comme suit :
Merci pour la réponse, cela marche très bien.
Encore un petit problème, j'ai une classe php Month comme suit :
<?php
class Month extends Date
{
/**
* Libellé du mois
*
* @param int $m
* @return string
*/
public function rtvDay($date)
{
$date = new DateTime($date);
$j = $date->format('N');
$d = $date->format('d');
return $this->days[$j] . ' ' . $d;
}
public function rtvDayOfYear($date)
{
$date = new DateTime($date);
$date = $date->format('Y-m-d');
return intval(strftime("%j", strtotime($date)));
}
public function rtvWeek($date)
{
$date = new DateTime($date);
return $date->format('W');
}
public function getMonth($mois)
{
$year = date('Y');
$mois = ($mois < 10 ? '0' : '') . $mois;
$day = 1;
$date = $year.'-'.$mois.'-01';
$nbj = date('t', strtotime($date));
$nbj = intval($nbj);
$today = date('Y-m-d');
$an = $year.'-01-01';
$paq = $this->paques($year);
$lpaq = $this->rtvPaq($year);
$trav = $year.'-05-01';
$vict = $year.'-05-08';
$asc = $this->rtvAsc($year);
$pent = $this->pentecote($year);
$lpent = $this->rtvPent($year);
$fetnat = $year.'-07-14';
$assomp = $year.'-08-15';
$toussaint = $year.'-11-01';
$arm = $year.'-11-11';
$noel = $year.'-12-25';
$feries = [
$an, $paq, $lpaq, $trav, $vict, $asc, $pent, $lpent, $fetnat, $assomp, $toussaint, $arm, $noel
];
for ($i = 1; $i <= $nbj; $i++) {
$j = ($i < 10 ? '0' : '') . $i;
$dt = $year.'-'.$mois.'-' . $j;
$y = date('Y', strtotime($dt));
$m = date('m', strtotime($dt));
$d = date('d', strtotime($dt));
if (in_array($dt, $feries) && ($dt !== $today)) {
$r = '<div class="day green">';
} elseif ($dt == $today) {
$r = '<div class="day red">';
} else {
$r = '<div class="day">';
}
$r .= '<p>' . $this->rtvDay($dt) . '</p>';
$r .= '</div>';
$r .= '<div class="jour-sem">';
if (in_array($dt, $feries) && ($dt !== $today)) {
$r .= '<div class="daylib green">';
} elseif ($dt == $today) {
$r .= '<div class="daylib red">';
} else {
$r .= '<div class="daylib">';
}
$r .= '<p>' . $this->rtvDayOfYear($dt) . '</p>';
$r .= '</div>';
if (in_array($dt, $feries) && ($dt !== $today)) {
$r .= '<div class="weeklib green">';
} elseif ($dt == $today) {
$r .= '<div class="weeklib red">';
} else {
$r .= '<div class="weeklib">';
}
$r .= '<p>' . $this->rtvWeek($dt) . '</p>';
$r .= '</div></div>';
echo $r;
}
}
}
J'aimerais passer l'année en paramètre pour pouvoir remplacer dans la fonction getMonth $year = date('Y') par $year = $year passée en paramètre.
Si vous avez une idée, elle serait la bienvenue.
Cordialement
Bonjour,
J'ai trouvé, il fallait ajouter un constructeur, voilà ce que j'ai fait :
Merci encore pour ton aide
Cordialemnt
J'ai trouvé, il fallait ajouter un constructeur, voilà ce que j'ai fait :
class Month extends Date
{
public $year;
public function __construct($year)
{
$this->year = $year;
}
public function getMonth($mois)
{
$year = $this->year;
$mois = ($mois < 10 ? '0' : '') . $mois;
$day = 1;
$date = $year.'-'.$mois.'-01';
$nbj = date('t', strtotime($date));
$nbj = intval($nbj);
$today = date('Y-m-d');
$an = $year.'-01-01';
$paq = $this->paques($year);
$lpaq = $this->rtvPaq($year);
$trav = $year.'-05-01';
$vict = $year.'-05-08';
$asc = $this->rtvAsc($year);
$pent = $this->pentecote($year);
$lpent = $this->rtvPent($year);
$fetnat = $year.'-07-14';
$assomp = $year.'-08-15';
$toussaint = $year.'-11-01';
$arm = $year.'-11-11';
$noel = $year.'-12-25';
$feries = [
$an, $paq, $lpaq, $trav, $vict, $asc, $pent, $lpent, $fetnat, $assomp, $toussaint, $arm, $noel
];
for ($i = 1; $i <= $nbj; $i++) {
$j = ($i < 10 ? '0' : '') . $i;
$dt = $year.'-'.$mois.'-' . $j;
$y = date('Y', strtotime($dt));
$m = date('m', strtotime($dt));
$d = date('d', strtotime($dt));
if (in_array($dt, $feries) && ($dt !== $today)) {
$r = '<div class="day green">';
} elseif ($dt == $today) {
$r = '<div class="day red">';
} else {
$r = '<div class="day">';
}
$r .= '<p>' . $this->rtvDay($dt) . '</p>';
$r .= '</div>';
$r .= '<div class="jour-sem">';
if (in_array($dt, $feries) && ($dt !== $today)) {
$r .= '<div class="daylib green">';
} elseif ($dt == $today) {
$r .= '<div class="daylib red">';
} else {
$r .= '<div class="daylib">';
}
$r .= '<p>' . $this->rtvDayOfYear($dt) . '</p>';
$r .= '</div>';
if (in_array($dt, $feries) && ($dt !== $today)) {
$r .= '<div class="weeklib green">';
} elseif ($dt == $today) {
$r .= '<div class="weeklib red">';
} else {
$r .= '<div class="weeklib">';
}
$r .= '<p>' . $this->rtvWeek($dt) . '</p>';
$r .= '</div></div>';
echo $r;
}
}
}
Merci encore pour ton aide
Cordialemnt