Page 1 sur 1

[Résolu]Passage de variable - syntaxe

Posté : 10 janv. 2011, 16:50
par catherine63
Bonjour,
J'utilise une carte de france qui me donne selon choix, un tableau des annonces correspondantes. Je voudrai évidemment faire le lien entre ce tableau (php) et mon site d'annonces (Joomla + adsmanager).
Dans le fichier settings.php du module map :
- je récupère l'ID de la ligne choisie
$identif=$_get['id'];
- je voudrai donc afficher l'article correspondant dans Joomla/AdsManager :
ce qui devrait donner http://www.monsite.fr/index.php?opti...=show_ad&adid=5 (pour l'annonce 5 choisie)
Or il ya un pble, certainement de syntaxe mais je cherche depuis plusieurs jours et ne trouve pas...
j'ai saisi
$urlPageCible = 'http://www.monsite.fr/index.php?option= ... d=$identif';
ce qui donne :
http://www.monsite.fr/index....=show_ad ... entif?id=5
et non : http://www.monsite.fr/index.php?opti...=show_ad&adid=5 (pour l'annonce 5 choisie)

qqun de calé en php pourrait-il me donner la solution ?
en vous remerciant et vous souhaitant une bonne année 2011
Catherine

Joomla 1.5.22
ADSMANAGER 2.5
php 5

Re: Passage de variable - syntaxe

Posté : 10 janv. 2011, 17:34
par AB
Bonjour,

Ta variable $identif n'est pas interprétée.

Il faut concaténer tes variables dans le code php
$urlPageCible = 'http://www.monsite.fr/index.php?option=com_adsmanager&page=show_ad&adid='.$identif;

Re: Passage de variable - syntaxe

Posté : 11 janv. 2011, 19:45
par catherine63
Bonsoir,
Malheureusement cela ne marche toujours pas.
la syntaxe que vous m'avez suggéré : $urlPageCible = 'http://www.monsite.fr/index.php?option= ... '.$identif;
Donne :
http://www.monsite.fr/index.php?option= ... adid=?id=5 (et donc erreur d'affichage)
et non :
http://www.monsite.fr/index.php?option= ... _ad&adid=5 (pour l'article N°5)

Merci pour votre aide, je tourne en rond
Catherine

Re: Passage de variable - syntaxe

Posté : 11 janv. 2011, 23:43
par sadeq
Bonjour,

La syntaxe que t'a donné AB est correcte, mais l'erreur se trouve en amont dans une instruction d'affectation de la variable $identif. La correction devrait être ceci:
$identif = isset($_GET['id']) ? $_GET['id'] : null; //se lit: si le champ id est dans le GET alors (?) l'affecter sinon (:) affecter NULL
$urlPageCible = 'http://www.monsite.fr/index.php?option=com_adsmanager&page=show_ad&adid='.$identif;

Re: Passage de variable - syntaxe

Posté : 12 janv. 2011, 16:10
par catherine63
Désolée, toujours pareil.
Vous pouvez voir la Carte à cette adresse http://www.monsite.fr/cartefrance/map.php
en sélectionnant le département, puis l'article, tout va bien, par contre, si "Accéder à la fiche annonce" ==> erreur affichage.
Si on ne passe pas par la carte, pour afficher l'article N°5 = http://www.monsite.fr/index.php?option= ... _ad&adid=5
merci de votre aide
Catherine

Re: Passage de variable - syntaxe

Posté : 12 janv. 2011, 19:23
par sadeq
Faits un print_r($_GET) pour voir la valeur transmise dans le champ id. Parce que nous on peut pas voir les paramètres sur le site de ta carte car elle est en flash.

Re: Passage de variable - syntaxe

Posté : 13 janv. 2011, 21:51
par catherine63
voici donc une partie de settings.php :
$identif = isset($_GET['id']) ? $_GET['id'] : null;
print_r($identif);
$urlPageCible = 'http://www.monsite.fr/index.php?option= ... '.$identif;

print_r($identif); qui affiche bien 5 devant le nom de l'annonce N°5 (avant de cliquer sur "Accéder à la fiche annonce")
Merci de votre aide et de votre attention

Re: Passage de variable - syntaxe

Posté : 14 janv. 2011, 10:33
par sadeq
Je pense que tu ne retransmet pas tous les paramètres correctement dans la fiche qui affiche le nom de l'annone avant de cliquer sur le bouton "Accéder à la fiche annonce" car quand on clique sur ce bouton le système n'envoie que l'id (?id=5 dans notre contexte évalué) comme paramètre sur l'URL qu'il a reçu auparavant (http://www.location-voisin.fr/index.php ... w_ad&adid=) à ce niveau là ça doit être un problème de codage dans les événements Action Script du flash.
De plus, sur la dernière page qui affiche le détail produit suite au clic sur le bouton "Accéder à la fiche annonce" on remarque que PHP n'est pas correctement interprété car le système affiche les variables php au lieu des valeurs ou bien une erreur. Peut-être que la page n'a pas d'extension .php ou les zones de code ne sont pas entre <?php et ?>.
Extrait de cette erreur d'interprétation:
$row->ad_headline
$row->ad_detail
Prix: $row->ad_price €
Prix du neuf: $row->ad_prixneuf €
Année achat: $row->ad_achat
Bref, il faut revoir comment sont transmis les paramètres au niveau du script Action Script de flash au niveau du bouton "Accéder à l'annonce", et s'assurer de la retransmission des paramètres nécessaires. Soit :
  • option = com_adsmanager
    page = show_ad
    adid = 5
(tout en veillant à utiliser le nom adid au lieu de id dans tous les cas. ça ne sert à rien de changer les noms des mêmes champs à chaque contexte).

Côté Flash, ça va être un script ActionScript qui décrit le comportement au clic sur le bouton "Accéder à l'annonce" qui peut ressembler à cet exemple :

Code : Tout sélectionner

bouton_Acceder_Annonce.onPress=function(){ // ************************************************************************ // // Cette fonction exécute le script PHP en lui passant quelques paramètres //************************************************************************** // // variable contenant les paramètres à passer au script php à exécuter var paramPHP = new LoadVars(); paramPHP.option =_root.option; // variable existante dans l'animation en cours (la valeur dans notre contexte est : com_adsmanager) paramPHP.page =_root.page; // variable existante dans l'animation en cours (la valeur dans notre contexte est : show_ad) paramPHP.adid = _root.adid; // variable existante dans l'animation en cours (dans ton cas tu l'as appelé id) (la valeur dans notre contexte est : 5) // chargement de l'URL du script PHP + paramètres + la méthode d'envoi (POST/GET) paramPHP.sendAndLoad("http://www.location-voisin.fr/index.php", paramPHP, "GET"); }

Re: Passage de variable - syntaxe

Posté : 14 janv. 2011, 15:42
par AB
Oui j'en étais arrivé à la même conclusion.
Le problème initialement soumis a été réglé, mais il reste des soucis pour le reste.

Sadeq t'a donné des détails et je pense à une chose, si ce sont des modules joomla il y a peut-être des paramétrages à faire dans les modules que tu as manqués :-k

Re: Passage de variable - syntaxe

Posté : 17 janv. 2011, 17:19
par catherine63
Merci de vous être penchés sur mon problème.
Je pose la question au développeur de france-map.
J'attends sa réponse.
je reviendrai vous tenir au courant et régler (je l'espère) ce post
merci encore
Catherine

Re: Passage de variable - syntaxe

Posté : 20 janv. 2011, 12:18
par catherine63
Voici la solution donnée par le responsable du module france-map :
C'est à priori la fonction "Loadformembre" du flash qui appelle la page Urlcible (définie dans settings.php) comme cela:
Code:
urlcible?id=valeurdeid
pour que le GET de Urlcible fonctionne.
c'est de là que vient le 5 dans ton exemple et non pas de $identif (puisque settings.php ne peut pas obtenir id...)
Tu peux essayer de créer le fichier cible test.php qui contient le code suivant:
Code:
<?php
$cible=$_GET['id'];
header("location: http://www.monsite.fr/index.php?option= ... d=".$cible);
exit;
?>
et donc dans settings.php:
Code:
$utiliserPageCible = true;
$urlPageCible = 'test.php' ;

en vous remerciant encore de votre aide
Catherine