Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour
Je souhaite faire passer des valeurs ayant le meme nom de balise XML d'un fichier php vers un autre.
l'extrait du fichier xml :
sur un premiere page j'ai le lien qui pointe vers la 2e page, censée passer en variable les multiple champs <photo> et <model>:
$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;
}
et sur la seconde page je souhaite afficher ces photos :
cela m'affiche seulement la première photo. Comment pourrais je faire pour passer en URL les différentes valeurs des champs <photo> ?
Si quelqu'un pourrait m'éclairer....
Hors ligne
Saluton,
Je pense que tu dois d'abord sérialiser les variables $model et $photo avant de les mettre dans l'url.
Mais attention, cela risque de faire une url bien longue, peut-être ferais-tu mieux de passer par des variables de session.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bonjour
oui ca parait plus simple mais je ne suis pas vraiment expert. J'ai donc remodif le code pour utiliser les sessions, nouveau problème deja a chaque fois que je fais page arrière sur mon browser pour réafficher le tableau de tout les produits (la 1ere page) et que je reclique sur un lien, la variable envoyée par la session est toujours la meme....
j'ai mis un session_start(); tout en haut de chaque page, que pourrais je faire de plus ?
Hors ligne
Ben, je ne suis pas devin, donc sans voir où quand et comment des valeurs sont affectées à ces variables de session, partant, je ne peux pas te dire précisément où elles devraient être éventuellement écrasées (unset).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
voila donc le code, le soucis c'est qu'il me retourne en permanence les champs de la derniere balise XML...je vois pas du tout pourquoi :
la page 1 :
$rows = array();
$sxml = simplexml_load_string($xml);
foreach($sxml as $node) {
$thumb = (string)$node->photo_list->thumb;
$model = htmlspecialchars((string)$node->model, ENT_QUOTES);
$_SESSION['model'] = htmlspecialchars((string)$node->model, ENT_QUOTES);
$_SESSION['photo'] = (string)$node->photo_list->photo;
$rows[] = <<<HTML
<a href="http://monsite.fr/fancy/demo/testf2.php"><img src="{$thumb}" alt="Aperçu" /></a></br>
{$model}</br></br>
HTML;
}
// -------------------------------------------------------
// nombre de cellules a remplir
$NbreData = count($rows);
// -------------------------------------------------------
// affichage
$NbrLigne = 0;
if ($NbreData != 0)
{
$k = 0; // indice du tableau
?>
<table frameBorder="0">
<tbody>
<?php
while ($k < $NbreData)
{
if (($k+1)%$NbrCol == 1) {
$NbrLigne++;
$fintr = 0;
?> <tr>
<?php }
?> <td>
<?php // -------------------------
// DONNEES A AFFICHER dans la cellule
echo $rows[$k];
//echo $rows[$id];
?> </td>
<?php if (($k+1)%$NbrCol == 0) {
$fintr = 1;
?> </tr>
<?php }
$k++;
}
// fermeture derniere balise /tr
if ($fintr!=1) {
?> </tr>
<?php } ?>
</tbody>
</table>
<?php
} else { ?>
pas de données à afficher
<?php
}
?>
</body>
</html>
et la page 2 :
echo $_SESSION['photo'];
echo $_SESSION['model'];
?>
Dernière modification par meteu2 (26-10-2012 00:21:15)
Hors ligne
Comme tu as plusieurs balises <model></model> et <photo></photo>, là ton code
doit écraser avec la dernière valeur parcourue dans le foreach les deux index de $_SESSION.
Essaye avec $_SESSION['photo'][] et $_SESSION['model'][], ça devrai te créer un array.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bonjour
je dois modifier la 1ere page aussi ? car la je me prends un :
Cannot use [] for reading in /homepages/34/d419102841/htdocs/fancy/demo/testf2.php on line 4
Hors ligne
Non les crochets vides [] c'est pour instancier les valeurs dans des index de $_SESSION['photo'] et $_SESSION['model'] dans la 1ère page.
A près, pour parcourir les array à 2 dimensions dans testf2.php, je te renvoie vers la doc PHP de foreach pour le parcours des tableaux multi-dimensionnels (en imbriquant 2 structures foreach).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1