PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Passer variables XML sur une autre page » 26-10-2012 23:09:09

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

#2 Re : Forum Général PHP » Passer variables XML sur une autre page » 26-10-2012 23:09:09

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 :


<?php
// On démarre la session AVANT d'écrire du code HTML
session_start();
$NbrCol = 5;
$xml = utf8_encode(file_get_contents('176.xml'));

$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 :


<?php
// On démarre la session AVANT d'écrire du code HTML
[php]session_start();

echo $_SESSION['photo'];
echo $_SESSION['model'];


 ?>

#3 Re : Forum Général PHP » Passer variables XML sur une autre page » 26-10-2012 23:09:09

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 ?

#4 Forum Général PHP » Passer variables XML sur une autre page » 26-10-2012 23:09:09

meteu2
Réponses : 7

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 :

<model>MODENA 450</model>
<photo_list>
<photo>
1-185.JPG
</photo>
</photo_list>
<model>EDALON 556</model>
<photo_list>
<photo>
1-185.JPG
</photo>
<photo>
2-185.JPG
</photo>

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>:


$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
;
}

et sur la seconde page je souhaite afficher ces photos :

$model = $_GET['model'];
$photo = $_GET['photo'];
 
echo $model;
 
$i = 0;
foreach ($photo_list as $photo) {
  $photo = strval($photo);
  $photo = trim($photo);
  if ($i == 0)
    echo '<img src="'.$photo.'" alt="" />';
  echo '</a>';
  $i ++;
}

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....

Pied de page des forums

Propulsé par FluxBB