Hello tout le monde !

Pouvez-vous me venir en aide ?

Dans un custom post type, j'ai ajouté une fonction liée à l'affichage d'une de mes metabox.

Dans cette metabox, je souhaite afficher dynamiquement plusieurs formulaires (le même formulaire que je duplique pour ajouter une nouvelle entrée si nécessaire).

J'ai fait un test simple avec une boucle "for" (de i=1 à i=2), mais j'obtiens sur mon écran une boucle à l'infini, affichant le formulaire à l'infini avec la valeur "2".

Comment se fait-il que j'ai ce problème ???

Voici un résumé simple et basique de mon code pour bien comprendre :

function initialisation_metaboxes_clubs(){

add_meta_box('ajout_metabox','Titre metabox','ma_metabox','location','normal','high');

function ma_metabox($post){
for($i = 1 ; $i = 2 ; $i++){
echo '<div id="formulaire-'.$i.'">Contenu du formulaire'.$i.'</div>';
}
}

Le résultat qui se produit : des <div id="formulaire-2"> à l'infini

Merci de votre aide !

3 réponses


JC_Pires
Réponse acceptée

C'est tout à fait normal, explication:

le premier paramètre est une assignation, tu assignes à ta variable une valeur
le deuxieme paramètre est une condition
et le troisième est une itération

dans ce que tu écris, tu ne mets jamais de conditions il faut mettre $i <= 2 par exemple le signe = est une assignation
les opérateurs de comparaisons sont "== , ===, < , <=, =>, >, !="

Ce qui donne:

    function ma_metabox($post){ 
      for($i = 1 ; $i <= 2 ; $i++){
      echo 'Contenu du formulaire'.$i.'';
      }
    }

Ohhh que j'ai honte !!!!!

C'est exactement ça. C'est résolu !

Merciiiiiiiiiiiiiii JC_Pires !

De rien, ile ne faut pas avoir honte c'est en faisant des erreurs que l'on progresse.