Bonjour
j'ai donc essayé de modifier un peu le code, le but est d'afficher plusieurs photos qui ont des noms de balises XML identiques dans le diaporama Fancybox .
extrait du fichier XML :
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
| <model>MODENA 450</model>
<photo_list>
<photo>
1-185.JPG
</photo>
<photo>
2-185.JPG
</photo>
<photo>
3-185.JPG
</photo>
</photo_list>
<model>EDALON 556</model>
<photo_list>
<photo>
1-185.JPG
</photo>
<photo>
2-185.JPG
</photo>
<photo>
3-185.JPG
</photo>
</photo_list> |
Voici la première page PHP, récupérant le contenu du XML et les affichant. Le fait de cliquer sur le lien envoie vers la page de détail, avec les variables passées en URL :
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 47 48 49 50
| <?php
$NbrCol = 5;
$xml = utf8_encode(file_get_contents('176.xml'));
$rows = array();
$sxml = simplexml_load_string($xml);
foreach($sxml as $node) {
$model = htmlspecialchars((string)$node->model, ENT_QUOTES);
$photo = (string)$node->photo_list->photo;
$rows[] = <<<HTML
<a href="http://MONSITE.fr/fancy/demo/test8.php?model={$model}&photo={$photo}">lien vers produit</a></br>
{$model}
HTML;
}
// -------------------------------------------------------
// nombre de cellules a remplir
$NbreData = count($rows);
// -------------------------------------------------------
// affichage
$NbrLigne = 0;
if ($NbreData != 0)
{
$k = 0; // indice du tableau
while ($k < $NbreData)
{
if (($k+1)%$NbrCol == 1) {
$NbrLigne++;
$fintr = 0;
}
echo $rows[$k];
if (($k+1)%$NbrCol == 0) {
$fintr = 1;
}
$k++;
}
if ($fintr!=1) {
}
} else {
}
?> |
et la page test8.php, qui est censée récupèrer les variables et afficher le modèle ainsi que les images :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!-- Add jQuery library -->
<script type="text/javascript" src="../lib/jquery-1.8.2.min.js"></script>
<?php
$model = $_GET['model'];
$photo = $_GET['photo'];
echo $model;
$i = 0;
foreach ($photo_list as $photo) {
$photo = strval($photo);
$photo = trim($photo);
echo '<a class="fancybox" href="'.$photo.'" data-fancybox-group="gallery">';
if ($i == 0)
echo '<img src="'.$photo.'" alt="" />';
echo '</a>';
$i ++;
}
?> |
Et je me prends un "Invalid argument supplied for foreach() in " à la ligne 55, cad à
foreach ($photo_list as $photo) {
la variable photo_list n'est pas reconnue en fait il faudrait que je fasse passer en URL la valeurs des 2 diférentes photos pour ensuite les afficher avec la boucle...Si quelqu'un à une idée, merci par avance.
Partager