Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recuperer des valeurs lors d'un onSubmit()

1 réponse
Avatar
Apitos
Bonjour à tous,

J'aimerais récupérer deux valeurs d'un formulaire lors de l'évènement
onSubmit(), pour les injecter comme paramètres dans la fonction
javascript loadcalandar(month,year).

J'ai utiliser :

this.month.value pour le champ month

et

this.year.value pour le champ year.

mais en retour je n'ai que des valeurs vides :

loadCalendar("","");

<?php
// define array
$montharray = array('', 'January', 'February', 'March', 'April',
'May', 'June', 'July', 'August', 'September', 'October', 'November',
'December');


function years($selected=''){
$yearslist = "<select size='1' name='year'>";
for ( $y=1970; $y <2022; $y++ ){
if($selected == $y) $yearslist .= "<option selected value='$y'>$y</
option>";
else $yearslist .= "<option value='$y'>$y</option>";
}
$yearslist .= "</select>";
return $yearslist;
}


function months($selected='',$montharray){
$monthslist = "<select size='1' name='month'>";
for ( $m=1; $m <13; $m++ ){
if($selected == $m) $monthslist .= "<option selected value='$m'>
$montharray[$i]</option>";
else $monthslist .= "<option value='$m'>$montharray[$i]</option>";
}
$monthslist .= "</select>";
return $monthslist;
}

funcion printout(){

$output ='<div id="select_date">';
$output .='<form name="selectmonthyear" action=""/>';
$output .= months(date('n'));
$output .= years(date('Y'));
$output .='<input type="submit"
onSubmit="loadCalendar(\"this.month.value\",\"this.year.value
\");return false;" value="Go"/>';
$output .='</form></div>';
}

printout();
?>

1 réponse

Avatar
Olivier Miakinen
Bonjour,

Le 15/11/2010 18:14, Apitos a écrit :

[...]

<?php
// define array
$montharray = array('', 'January', 'February', 'March', 'April',
'May', 'June', 'July', 'August', 'September', 'October', 'November',
'December');


function years($selected=''){
$yearslist = "<select size='1' name='year'>";
for ( $y70; $y <2022; $y++ ){
if($selected == $y) $yearslist .= "<option selected value='$y'>$y</
option>";
else $yearslist .= "<option value='$y'>$y</option>";
}
$yearslist .= "</select>";
return $yearslist;
}



Ça semble correct.

function months($selected='',$montharray){
$monthslist = "<select size='1' name='month'>";
for ( $m=1; $m <13; $m++ ){



Ok jusque là.

if($selected == $m) $monthslist .= "<option selected value='$m'>
$montharray[$i]</option>";



Attention, ta variable $m se retrouve nommée $i en indice du tableau.

else $monthslist .= "<option value='$m'>$montharray[$i]</option>";



Idem.

}
$monthslist .= "</select>";
return $monthslist;
}



Ok pour le reste (en lecture rapide).

funcion printout(){



Tu aurais dû faire un copier/coller au lieu de tout saisir à la main :
il manque un t à function !


$output ='<div id="select_date">';
$output .='<form name="selectmonthyear" action=""/>';
$output .= months(date('n'));



Tu as oublié de passer $montharray en paramètre.

$output .= years(date('Y'));
$output .='<input type="submit"
onSubmit="loadCalendar("this.month.value","this.year.value
");return false;" value="Go"/>';
$output .='</form></div>';
}



Et là tu as oublié d'afficher $output.


printout();
?>



Si tu ne t'en sors pas avec les corrections déjà données, merci de nous
fournir le code HTML généré en plus du code source PHP, ça sera plus
facile à débuguer.

Cordialement,
--
Olivier Miakinen