Créer des array javascript avec pour Nom la valeur d'une variable php
Bonjour à tous,
Ca commence à s'embrouiller les pinceaux, voilà le topo.
- Une boucle php/mySql affiche des images avec leurs propriétes (Taille, poids, type)
- Lorsque l'on clic dessus cela appel "magnificPopup" qui est une lightBox (plein écran)
- Les infos de l'image sont envoyées dans le script magnificPopup par le biais des balises Tittle, id et name de l'image
Et dans cette bouce php j'aimerais remplir un array js (avec les infos de l'image) pour l'envoyer dans le script magnificPopup
pour pouvoir développer des boutons radio à partir de cet array
Du style : (j'ai nettoyé pour y voir plus clair)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| While(sur les images)
{
<script>
// Création de l'array
nom_image= [];
</script>
While(sur les infos[] de l image)
{
<script>
// Remplissage de l'array
nom_image.push("<?php echo Info[1].'|'.Info[2];?>");
</script>
<?php }
}
?> |
Le code utilisé:
Code:
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <?php
// Boucle sur les images
while ($donnees = $req_photos->fetch())
{ ?>
<script type="text/javascript">
// Création l'array Js pour le remplir ensuite
// Le nom est le nom de l'image
var <?php echo $donnees['Nom']; ?> = [];
</script>
<!-- Affichage de l'image -->
<a href="<?php echo $donnees['Chemin'].$donnees['Nom']; ?>" title="<?php echo $donnees['Nom']; ?>" id="<?php echo $donnees['id']; ?>" name="<?php echo $donnees['Chemin'];?>">
<!-- Les valeurs des balises tittle, id et name sont utilisées dans le script de magnificPopup plus bas -->
<img src="<?php echo $donnees['Chemin'].$donnees['Nom']; ?>"/>
</a>
<?php
// Boucle sur les Infos de l'image
$tags->execute();
while($Infos=$tags->fetch())
{ ?>
<script type="text/javascript">
// Ici ajout dans l'array Js des Infos de l'image
<?php echo $donnees['Nom']; ?>.push('<?php $Infos['Format'].'|'.$Infos['Finition'];?>');
</script>
<?php }
}
<?php
}
// Fin Boucle sur les images
?>
<script type="text/javascript">
$('.parent-container').magnificPopup({ // Script magnificPopup
delegate: 'a', type: 'image',
image: {
titleSrc: function(item) {
// Récupération des valeur des balises tittle, id et name de l'image afin de les afficher dans le plein ecran
var caption_nom = item.el.attr('title');
var caption_id = item.el.attr('id');
var Chemin = item.el.attr('name');
// Affichage des infos de l'image dans le plein ecran
return ' Image: '+caption_nom+' Id: '+caption_id+' Chemin: '+Chemin;
// Et c'est là que j'aimerais récupérer l'array qui a été créé dans la boucle Infos
// dont le nom est le même que caption_nom de la balise tittle
}
},
});
</script> |
Je pense qu'ensuite il va y avoir le problème dans le return lors du développement de l'array (avec un foreach),
car l'idée est de pouvoir créer des boutons radio avec les valeurs de l,'array.
C'est un peu le bazar, tout ça, non ?
Qu'en pensez-vous ?