J'ai deux sérieux soucis. Mon code ci-dessous génère automatiquement des nombres ordonnés basés sur le préfixe renseigné et la longueur lorsqu'on lance par défaut le script PHP dans un navigateur Web.
1 - Le problème Numéro 1 est que je ne souhaite pas que ça génère AUTOMATIQUEMENT ou PAR DEFAUT des nombres au LANCEMENT de la page. Ça devra générer SEULEMENT quand on clique sur le Bouton du formulaire HTML "submit".
NB: J'ai essayé de corriger cela en supprimant les "??3333" et "??11" des "value" du formulaire HTML et dans la déclaration des variables $nombre et $long, mais ça m'affiche des erreurs comme "Index undefined".
2 - Mon 2ème casse-tête est que je souhaiterais enregistrer tous les numéros générés dans un fichier ".txt". Mais je ne sais pas comment m'y prendre vu que le code comporte un système de pagination.
Comment donc stocker tous les numéros générés dans un fichier texte ".txt" malgré le système de pagination ???
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<style>
.courante{background:black;color:white;font-weight:bold}
</style>
</head>
<body>
<form method="post" id="form1">
Valeur :<input type="number" name="nombre" min="1" value="<?=$_POST['nombre']??3333?>"/>
Longueur :<input type="number" name="long" min="1" value="<?=$_POST['long']??11?>"/>
<input type="submit" />
</form>
<?php
$nombre=$_POST['nombre']??3333;
$long=$_POST['long']??11;
if($long<=strlen($nombre)){
throw new Exception('La longueur '.$long.' doit être supérieure au nombre de chiffres de '.$nombre.' !');
exit();
}
$nbrParPage=100;
$page=$_POST['page']??1;
$start=($page-1)*$nbrParPage;
$max=$nombre.str_repeat("9",($long-strlen($nombre)));
$min=$nombre.str_repeat("0",($long-strlen($nombre)));
$end=($start+$nbrParPage)<=$max?$start+$nbrParPage:$max;
$nbrPage=ceil(((int)$max-(int)$min)/$nbrParPage);
echo "min :".$min.", max :".$max.", nbrPage :".$nbrPage.", page :".$page.", nombre :".$nombre.", longueur :".$long;
if($nbrPage>=1){
?>
<div>
<button type="submit" name="page" form="form1" value="1" <?php echo $page==1?" disabled":"";?>>Début</button>
<button type="submit" name='page' form='form1' value="<?=$page-1?>" <?php echo $page==1?" disabled":"";?>>Précedent</button>
<?php
if($nbrPage>6){
if($page>5){
for($i=1;$i<=3;$i++){?>
<button type="submit" name="page" form="form1" value="<?=$i?>" ><?=$i?></button>
<?php
}
}
if( $page>=3) {echo "...";}
for($i=$page-1>0?$page-1:1;$i<($page+3<$nbrPage-2?$page+3:$nbrPage-2);$i++){
?>
<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
<?php
}
if($page+3<$nbrPage-2){echo "...";}
for($i=$nbrPage-2;$i<=$nbrPage;$i++){
?>
<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
<?php
}
}
else{
for($i=1;$i<=$nbrPage;$i++){
?>
<button type="submit" name="page" form="form1" value="<?=$i?>" <?php echo $page==$i?' class="courante"':'';?>><?=$i?></button>
<?php
}
}
?>
<button type="submit" name="page" form="form1" value="<?=$page+1?>" <?php echo $page==$nbrPage? " disabled":''?>>Suivant</button>
<button type="submit" name="page" form="form1" value="<?=$nbrPage?>" <?php echo $page==$nbrPage?' disabled':'';?>>Fin</button>
</div>
<?php
for($i=$start;$i<(int)$end;$i++){
if($min+$i<=$max){
echo "<p>".($min+$i)."</p>";
}else{
break;
}
}
}
?>
</body>
</html>Aidez-moi s'il vous plaît.