IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Incrémenté une variable utilisé comme index d'un tableau


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Incrémenté une variable utilisé comme index d'un tableau
    Bonjour à tous,

    Désolé si je n'utilise pas les bons termes pour expliquer mon cas mais je débute totalement en PHP.

    J'ai besoin d'être un peu "orienté" au niveau de mes recherches & de la compréhension du langage.

    Mon cas :
    J'ai une variable de type array.
    Chaque index de ce tableau contient des chaînes de caractères (string).
    En gros... ces chaînes sont des blagues.

    Avec mes connaissances de php j'affiche une blague de manières aléatoires.
    Un bouton est présent afin de rafraichir la page & de générer une nouvelle blague.
    Problème : l'utilisateur peut avoir plusieurs fois la même blagues.
    Je n'ai pas mon fichier sous la main mais en gros ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    $blagues['blague1','blague2'....'blagueN'];
    $min=0;
    $max=count($blagues)-1;
     
         echo $blagues[rand($min,$max)];
     
    ?>
     
    <input [....] avec du code javascript que j'ai copié sur Internet pour rafraichir la page>
    Ce que je souhaite faire :

    Afficher les blagues une part une, dans l'ordre des index du tableau.
    L'affichage de la prochaine blague s'effectue à l'aide d'un bouton.

    On aura donc, si je ne trompe pas, une incrémentation d'une variable, $i=0 par exemple, qu'on utilisera comme index de l'array.


    Mes recherches :
    Les solutions qui s'offrent à moi :

    -> un fichier texte qui contient la valeur-> problème si j'ai plusieurs utilisateurs connectés en même temps ils vont incrémentés le fichier en même et ne pas voir toutes les blagues. Il faudra prévoir un fichier texte par personne et une remise à zéro lorsqu'ils ont terminés de toutes les lire
    -> une alternative serait d'utiliser les cookies -> j'ai lu rapidement des choses dessus mais cela me semble une solution viable
    -> une base de données -> cependant sur mon serveur je n'ai pas de base de données & je ne souhaite pas aborder ce point dans l'immédiat (contrainte que je me mets volontairement dans mon apprentissage pour me concentrer sur le php/html & css)
    -> ne pas utiliser php mais javascript :

    Pouvez-vous me dire si il y a une autre solution à mon "petit" projet ?
    - je ne souhaite pas aborder un autre langage pour l'instant
    - je ne souhaite pas utiliser une base de données (pour l'instant)

    Avec les mot-clefs / concepts que vous évoquerez cela me permettra d'orienter mes recherches.

    Merci à vous.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par pytolux Voir le message
    ...Je n'ai pas mon fichier sous la main...
    Ben quand tu l'auras, on en reparle, OK ?

    • j'affiche une blague de manières aléatoires
    • Afficher les blagues une part une, dans l'ordre des index du tableau

    Donc :
    • on part d'un index, défini aléatoirement au chargement de la page
    • avec un bouton, on affiche l'index suivant
    • si l'index est le dernier de l'array -> on affiche l'index 0

    Début de piste :
    • pour ne pas avoir à recharger la page complète, le script sera en JavaScript.
    • on peut générer l'array JS à partir de l'array PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par jreaux62 Voir le message

    • pour ne pas avoir à recharger la page complète, le script sera en JavaScript.
    • on peut générer l'array JS à partir de l'array PHP

    Merci pour ton retour !

    Est-ce que la gestion des cookies permettrait de ne pas utiliser JavaScript ?
    Dans l'idée on enregistrerait la valeur de la variable à incrémenter dedans.

    Ca me permettra de me dire si commence j'attaque ce sujet (cookies) ou si je l'aborde ultérieurement.

    Citation Envoyé par jreaux62 Voir le message
    Bonjour,


    Ben quand tu l'auras, on en reparle, OK ?
    Excuse moi jreaux62... Milles excuses...

    Le seul truc qui manque c'est le contenu de l'input qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="bouton" type="button" onclick="window.location.reload(false)" value="Je veux une nouvelle blague !">
    Sinon le code php est celui que j'ai saisie.
    Tu voulais peut être les blagues en plus ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Une solution, avec JavaScript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    // Tableau des blagues (option : avec formatage/balises HTML)
    $blagues = [
    	'C\'est l\'histoire d\'un <b>mec</b>...',
    	'Tu la connais, celle du <b>gars</b> qui...',
    	'Ta <b>mère</b> est tellement...'
    ];
    ?>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="div_joke" style="padding:20px;"></div>
    <button type="button" id="btn_next">> Une autre !</button>
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script>
    "use strict";
    window.addEventListener("DOMContentLoaded", (event) => {
    	const div_joke = document.getElementById('div_joke');
    	const btn_next = document.getElementById('btn_next');
    	const blagues = [
    <?php // on construit l'array JS à partir de l'array PHP
            foreach($blagues as $blague){
                    echo "          '".str_replace("'","\'",$blague)."',\n";
            }
    ?>
    	];
    	// ----------
    	const nbr_joke = blagues.length;
    	const idx_start = Math.floor(Math.random() * (nbr_joke - 0) + 0); // index aléatoire
    	// ----------
    	// au chargement de la page
    	let idx = idx_start;
    	div_joke.innerHTML = blagues[idx];
    	// ----------
    	// au clic sur le bouton next
    	btn_next.addEventListener('click', function(){
    		idx = (idx+1)%nbr_joke; // astuce du modulo
    		div_joke.innerHTML = blagues[idx];
    	});
    });
    </script>
    Dernière modification par Invité ; 05/05/2020 à 17h24.

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Septembre 2018
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Wooo j'en demandais pas tant merci à toi.
    Je vais étudier ça au niveau de javascript. Mais sans avoir jamais abordé le code & avec tes commentaires cela me semble plutôt clair.

    Sinon pour reprendre mon précédant message, est-ce que la gestion des cookies (avec php) permettrait de ne pas utiliser JavaScript ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Le "clic" se fait "coté client".
    Donc il doit être géré par un langage client, comme JavaScript.

    Sinon, ça oblige à recharger toute la page, ce qui n'est pas terrible... et encore moins "marrant".

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/11/2007, 15h14
  2. Afficher une variable texte comme image
    Par Alexandrebox dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2007, 15h06
  3. Incrémenter une variable en CR9
    Par nanouille56 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 13/02/2007, 15h59
  4. [XSLT] incrémenter une variable
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/09/2005, 17h12
  5. [débutant][xsl]incrémenter une variable
    Par guitalca dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/04/2003, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo