> Tous les forums > Forum des Webmasters
 remplir un tableau dynhamiquement en PHPSujet résolu
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
caroline janin
  Posté le 18/08/2021 @ 10:21 
Aller en bas de la page 
Nouvelle astucienne





Bonjour.

J'aimerai écrire un code php avec un formulaire qui permet d'entrer des nombres dans un tableau.

Le premier formulaire contient juste le nombre total à rentrer.

Voici le script du premier formulaire :

<html>

<head>

<title>

saisie de nombres pour les stocker dans un tableau

</title>

</head>

<body>

<form name = "formulaire"

action = "second_script.php"

method = "post">

taper le nombre total de nombres à stocker dans le tableau

<input type = "text"

name = "TotalNombres" />

<input type = "submit"

value = "aller dans l'étape 2 pour entrer les nombres">

</form>

</body>

</html>

Le second formulaire contient les nombres à rentrer.

Par exemple, si le total des nombres à entrer est de 2, il y a juste 2 nombres à rentrer.

Voici le second script :

<html>

<head>

<title>

saisie d'un nombres dans le tableau

</title>

</head>

<body>

<form name = "formulaire"

action = "troisieme_script.php"

method = "post">

taper un nombre à ranger dans le tableau

<input type = "text"

name = "TableauNombres" />

<input type = "submit"

value = "ranger le nombre dans le tableau">

</form>

</body>

</html>

C'est ce second script que je veux entrer dans la boucle.

Voici le troisième script :

<?php

$TotalNombres = $_POST ['TotalNombres'] ;

$TableauNombres = $_POST ['TableauNombres'] ;

TableauNombres = array ($TotalNombres) ;

// je ne sais pas si on peut faire ça

/*

Il faut entrer les nombres dans une boucle qui va de 0 jusqu'au nombre total à rentrer et demander à l'utilisateur d'entrer un nombre.

*/

for ($compteur = 0 ; $compteur < $TotalNombres ;

$compteur ++)

{

/*

je voudrais insérer le second script avec la variable compteur en paramètre pour faire avancer le compteur

quand un nombre est rentré

*/

echo $TableauNombres [$compteur] . ' ' ;

// l'espace sépare les nombres affichés

}

?>

Est-il possible en php de poser la question à l'utilisateur du nombre à rentrer à l'intérieur d'une boucle for, car je ne veux pas écrire dans un formulaire nombre1, nombre2, nombre3, nombre4, etc.

Merci d'avance pour vos réponses, ce qui me permettra d'écrire d'autres scripts du même style pour entrer des informations ![Configuration automatique à compléter]
Windows 10
Chrome 79.0.3945.117

Publicité
fgondard
 Posté le 18/08/2021 à 12:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grand Maître astucien

Bonjour,

Clique sur l'icône présente dans le bandeau de chaque message et demande au modérateur de transférer ta question dans le forum des webmasters.

pcastuces
 Posté le 19/08/2021 à 11:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Equipe PC Astuces
Bonjour,

Le sujet a été déplacé par la modération dans le forum des Webmasters qui semble plus adéquat.

Vous pouvez continuer la discussion à la suite de ce message.

A bientôt.
zoulouman
 Posté le 19/08/2021 à 12:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Utilise {;} pour donner tes exemples de code, sinon c'est illisible.
Tu peux redonner ton code maintenant que tu sais comment faire, STP ?

Sinon, si j'ai bien compris ta question, tu demandes à ton visiteur d'entrer le nombre d'éléments qu'il veut passer et après tu lui affiches la page sur laquelle il pourra entrer tous ses éléments ?
Si c'est ça, oui c'est possible, c'est PHP qui se chargera de créer la page avec nombre1, nombre2, nombre3, etc...

Il faut juste fixer des limites pour qu'un petit malin n'entre pas 3 milliards d'éléments, ce qui ferait une page en retour de 15 kilomètres de haut.

Jean-Pierre
 Posté le 19/08/2021 à 14:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Oui comme dit Zouzou, faut utiliser la boite de code.

Ensuite nous donner clairement ton algo, car plus c'est clair... plus on nez clair (au chocolat)

Donne-nous un exemple simple et clair des tenants et des aboutissants.

Moins y a de blabla, plus on pigera (ça rime).

Licette et JP (stp licette un peu de tenue...)

Jean-Pierre
 Posté le 20/08/2021 à 13:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

.

J'aurais mieux fait de ne pas demander l'algo

Généralement le client tentant de détailler l'algo ne connait strictement rien au code, et c'est tant mieux à ce niveau.

Sinon ça donne l'exemple dito...

Je comptais sur un exemple TOUT simple en clair...

Pas possible de nous donner un exemple parlant et directement compréhensible ?

Bref : quel but ????

Licette et JP



Modifié par Jean-Pierre le 20/08/2021 13:36
Dreamer
 Posté le 20/08/2021 à 13:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Caroline

Ce que veut te dire notre ami Zoulouman, c'est que tu dois utiliser {;} dans la barre d'outils pour présenter ton code, exemple

<?php

$TotalNombres = $_POST ['TotalNombres'] ;

$TableauNombres = $_POST ['TableauNombres'] ;

TableauNombres = array ($TotalNombres) ;

// je ne sais pas si on peut faire ça

/*

Il faut entrer les nombres dans une boucle qui va de 0 jusqu'au nombre total à rentrer et demander à l'utilisateur d'entrer un nombre.

*/

for ($compteur = 0 ; $compteur < $TotalNombres ;

$compteur ++)

{

/*

je voudrais insérer le second script avec la variable compteur en paramètre pour faire avancer le compteur

quand un nombre est rentré

*/

echo $TableauNombres [$compteur] . ' ' ;

// l'espace sépare les nombres affichés

}

?>
Jean-Pierre
 Posté le 20/08/2021 à 14:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Oui et au passage en virant les sauts de lignes

Bref que ce soit attirant et non le con traire de vache

zoulouman
 Posté le 20/08/2021 à 19:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

On fait un peu de propre, hein ?

Jean-Pierre
 Posté le 20/08/2021 à 21:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Oui et on n'est pas des méchants, pas avoir peur et revenir

zoulouman
 Posté le 20/08/2021 à 22:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Voilà les bouts de code nettoyés.

En HTML ça peut aller, mais en PHP ça ne va pas du tout. Le script ne marchera jamais.
On verra demain matin pour corriger tout ça.

CODE 1 :

<html>
  <head>
    <title>
    saisie de nombres pour les stocker dans un tableau
    </title>
  </head>
  <body>
    <form name = "formulaire" action = "second_script.php" method = "post">
      taper le nombre total de nombres à stocker dans le tableau
      <input type = "text" name = "TotalNombres" />
      <input type = "submit" value = "aller dans l'étape 2 pour entrer les nombres">
    </form>
  </body>
</html>

.

CODE 2 :

<html>
  <head>
    <title>
    saisie d'un nombres dans le tableau
    </title>
  </head>
  <body>
    <form name = "formulaire" action = "troisieme_script.php" method = "post">
      taper un nombre à ranger dans le tableau
      <input type = "text" name = "TableauNombres" />
      <input type = "submit" value = "ranger le nombre dans le tableau">
    </form>
  </body>
</html>

.

CODE 3 (non fonctionnel, affichera une erreur "PHP Parse error: syntax error, unexpected '=' on line 5")

<?php

$TotalNombres = $_POST ['TotalNombres'] ;
$TableauNombres = $_POST ['TableauNombres'] ;
TableauNombres = array ($TotalNombres) ;
// je ne sais pas si on peut faire ça

/*
Il faut entrer les nombres dans une boucle qui va de 0 jusqu'au nombre total à rentrer et demander à l'utilisateur d'entrer un nombre.
*/

for ($compteur = 0 ; $compteur < $TotalNombres ; $compteur ++) {
/*
je voudrais insérer le second script avec la variable compteur en paramètre pour faire avancer le compteur
quand un nombre est rentré
*/

echo $TableauNombres [$compteur] . ' ' ; // l'espace sépare les nombres affichés
}

?>

Je crois avoir compris le but recherché, on verra ça demain.
Si la demoiselle Caroline pouvait montrer un signe de vie, ça m'arrangerait bien. Ca m'éviterait de bosser pour rien...

Jean-Pierre
 Posté le 20/08/2021 à 23:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Si la demoiselle Caroline pouvait montrer un signe de vie, ça m'arrangerait bien. Ca m'éviterait de bosser pour rien...

A mon avis, elle est déjà partie ailleurs !

Le coup classique.

C'est Licette qui m'a dit ça hein.

Mais bon, Licette avec Souricette, ce sont de joyeuses cancanières : tout le mode y passe

Jean-Pierre
 Posté le 21/08/2021 à 14:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Belle Caro

Étang (pourquoi pas) donné que tonton Zouzou t'a déjà sauté dessus, je lui laisse la main (Vas-y zouzou montre...)

En plus le code (toujours) en vrac tartiné au dessus m'énerve quelque peu Surtout que tu sais désormais comment y remédier.

Ceci dit écoute, puisque tu affectionnes le domaine de traitement des données, il serait très un de tes récents, oupssss, intéressant dis-je, que tu regardes de très près le JSON.

Une fois que l'on y touche, et une fois percuté le principe...

Licette et JP
(Licette ma fifille chérie qui est une belle petite limace rouge : t'a déjà adopté)

zoulouman
 Posté le 22/08/2021 à 17:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut !

Désolé pour le retard, il m'est arrivé une aventure terrible hier !
11h, je croise des copains. Et bim ! Embuscade apéro. Obligé de boire comme un trou.
On passe l'après midi ensemble, quelques bières pour éponger le soleil marseillais, et le soir venu re bim ! Embuscade apéro dinatoire...

Et me voilà aujourd'hui, je crois que j'ai une fracture du crâne. Ou alors j'ai très mal à la tête. Mais je penche plus pour la fracture.
Enfin bon, je vais affiner mon diagnostic et on verra bien. En tout cas, c'est fini, je ne bois plus jamais !


Bon ! A nous deux Caroline. Puisqu'il semble que je t'ai sauté dessus. Il parait qu'il y a un témoin, enfin non 3. Le mec, sa limace et sa souri. Tu vois le truc, hein ?

Donc, tu veux une première page qui demandera combien d'éléments on veut entrer.
Pour l'exemple, si on a plus de 100 entrées, on rejettera. On rejettera également si le visiteur entre 0 ou le nom de sa mère.

Ensuite, tu veux afficher une page pour récupérer les nombres en quantité indiquée par le visiteur. Ce sera donc une liste de nombres >0 et <=100.
Tu n'as pas précisé "nombres décimaux", on considère donc qu'il s'agit de nombres entiers.

Puis, avec cette liste de nombres, tu feras je sais pas quoi.
Pour faire simple, on les affichera. Mais tu en feras ce que tu veux.

Je me penche là dessus et je reviens vers toi. Enfin non, je reviens te sauter dessus puisqu'il parait que je suis un sauvage.



Modifié par zoulouman le 22/08/2021 17:56
zoulouman
 Posté le 22/08/2021 à 19:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Voilà, voilà.

Voici un exemple de ce qu'il est possible de faire. Débutes par le fichier index.html et laisse toi faire.
Bien sûr, c'est fait à l'arrache. Pas de mise en page, rien ! Ca marche et c'est tout.

Tu peux télécharger le truc ici : https://mega.nz/file/45oFFK4I#EdEOKRicqQnbgpXqejuEVXoSog48ncbK_IFUGl4YuJk
En espérant que c'est ce que tu veux...

INDEX.HTML

<!doctype html>
<html lang="fr">
  <head>
    <title>
    Saisie de nombres pour les stocker dans un tableau
    </title>
    <meta charset="UTF-8" />
  </head>
  <body>
    <form name="formulaire" action="page2.php" method="GET">
      Entrez le nombre total de nombres à stocker dans le tableau. Max = 100 : (Si vous entrez une valeur incorecte, vous reviendrez sur cette page sans avertissement)<br />
      <input type = "text" name = "TotalNombres" /><br /><nr />
      <input type = "submit" value = "VALIDER">
    </form>
  </body>
</html>

PAGE2.PHP

<?php

function GoPage1() {
  header('HTTP/1.1 301 Moved permanently');
  header('Location: ./index.html');
  exit;
}

echo '<!doctype html>
<html lang="fr">
  <head>
    <title>
    Saisie des nombres
    </title>
    <meta charset="UTF-8" />
  </head>
  <body>';

if(empty($_GET['TotalNombres']) || !isset($_GET['TotalNombres'])) GoPage1();

$total = (int) $_GET['TotalNombres'];
if($total < 1 || $total > 100 ) GoPage1();


echo '    <form name="formulaire" action="page3.php" method="POST">
      <input type="hidden" name="TotalNombres" value="'. $total. '" />
      <span>Entrez les nombres souhaités et validez :<span><br />
      ';
for($x = 1; $x <= $total; $x++) {
  echo '<span>Valeur '. $x. ' : </span><input type="text" name="element'. $x. '" /><br />
      ';
}

echo '<input type="submit" value="VALIDER">
    </form>
';

echo '  </body>
</html>';

PAGE3.PHP

<?php

function GoPage1() {
  header('HTTP/1.1 301 Moved permanently');
  header('Location: ./index.html');
  exit;
}

echo '<!doctype html>
<html lang="fr">
  <head>
    <title>
    Saisie des nombres
    </title>
    <meta charset="UTF-8" />
  </head>
  <body>
    <div>NOMBRES RECUS : (ces nombres sont placés dans le tableau "nombres")<br />
      <pre>
      ';

if(empty($_POST['TotalNombres']) || !isset($_POST['TotalNombres'])) GoPage1();

$total = (int) $_POST['TotalNombres'];
if($total < 1 || $total > 100 ) GoPage1();

$nombres = array();
for($x = 1; $x <= $total; $x++) {
  $nombres[$x] = (int) $_POST['element'. $x];
}

echo '<br />
<span style="font-weight: bold;">Contenu du tableau nombres :</span>
';

print_r($nombres);

echo '      </pre>
    </div>
  </body>
</html>';
Jean-Pierre
 Posté le 22/08/2021 à 20:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Zouzou, quand tu sautes dessus...

Pauvre Caro

En attendant, pour ton lien, si c'est comme chez moi :

Caisse queue ça peu leur faire...

Les bandes d'enfoirés

Licette, Souricette et JP

zoulouman
 Posté le 22/08/2021 à 22:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ben oui mon JP, ton Vista saoule tout le monde on dirait...

EDIT

Tiens, essaye ça :
https://app.box.com/s/9mg0hofxwiil5539yi0sozkdnz2br0xk



Modifié par zoulouman le 22/08/2021 22:46
Jean-Pierre
 Posté le 22/08/2021 à 22:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

https://lalimacefolle.com/caro/index.html

Whaouuuuuuuuhhhhh fortiche le Zouzou

Caro sera tellement heureuse que... tu auras une tarte

JP

zoulouman
 Posté le 22/08/2021 à 23:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Une tarte ?

Une tarte aux chèques alors.

Jean-Pierre
 Posté le 22/08/2021 à 23:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Bon aller, le marchand de sable passe

zoulouman
 Posté le 22/08/2021 à 23:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Vas vite coucher tes personnalités et file au lit ensuite.

Jean-Pierre
 Posté le 22/08/2021 à 23:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

zoulouman
 Posté le 23/08/2021 à 15:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Rooooh c'est pas vrai ! Ca recommence...
Je prends ma réponse et je fous le camp sans même un "allez vous faire foutre".

Jean-Pierre
 Posté le 23/08/2021 à 20:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Zouzou, j'y pensais dès le début = inscription très récente sans aucune indication perso...

Dans deux ou trois jours nous serons fixés.

En attendant, Licette ma fifille chérie hurle !

Jean-Pierre
 Posté le 23/08/2021 à 21:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

.

Je crois que nous allons gerber en cœur !

Nous l'avons eu bien profond...

zoulouman
 Posté le 23/08/2021 à 21:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bah oui ma foi, que veux tu ?
Bon, elle est allée sur un site que j'aime bien, "Zeste de savoir". C'est un bon site.

Mais je note pour son prochain souci.

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
72,99 €Coupe-bordures sans fil Bosch EasyGrassCut 18V-230 (23 cm, batterie 18V 2Ah) à 72,99 €
Valable jusqu'au 18 Mai

Amazon fait une promotion sur le coupe-bordures sans fil Bosch EasyGrassCut 18V-230 avec 1 batterie 2 Ah qui passe à 92,99 €. Or Bosch rembourse actuellement 20 € pour l'achat de ce modèle (référence 06008C1A03) qui vous reviendra à 72,99 € après remboursement. On le trouve ailleurs à partir de 104 €.


> Voir l'offre
49,99 €Carte mémoire microSDXC UHS-I SanDisk Ultra 400 Go à 49,99 €
Valable jusqu'au 18 Mai

Cdiscount propose la carte mémoire microSDHC UHS-I SanDisk Ultra 400 Go à 49,99 €. On la trouve trouve ailleurs à partir de 70 €. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro, Nintendo Switch et est accompagnée d'un adaptateur SD.


> Voir l'offre
199,00 €Ecran PC 24.5 pouces BenQ EX2510S (FHD, IPS, FreeSync,165Hz, 2xHP, réglable en hauteur) à 199 €
Valable jusqu'au 18 Mai

Amazon fait une belle promotion sur l'écran PC BenQ MOBIUZ EX2510S qui passe 199,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 249 €. Il possède une dalle de 24.5 pouces Full HD IPS et offre une fréquence de rafraichissement de 165 Hz et un temps de réponse de 1 ms. Il intègre 2 HP (2.5W) et une connectivité HDMI et DP. Il est réglable en hauteur.


> Voir l'offre

Sujets relatifs
aide pour un tableau en php et Mysql
tableau en PHP
Passage en PHP 8 et function each() devenue bloquante
Compteur de visites en HTLM en PHP
Sur page PHP : méthode pour rafraîchir un div sous include en Ajax
[Tableau en HTML]
Couleur bordure tableau en html (NVU)
Etude sur les salaires des dev PHP en France
Tableau : ligne de titre en accordéon
Sécurité d'un site web en php
Plus de sujets relatifs à remplir un tableau dynhamiquement en PHP
 > Tous les forums > Forum Forum des Webmasters