[Résolu]Passage de variable - syntaxe

Petit nouveau ! | 6 Messages

10 janv. 2011, 16:50

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
Modifié en dernier par catherine63 le 20 janv. 2011, 12:19, modifié 2 fois.

ViPHP
AB
ViPHP | 5818 Messages

10 janv. 2011, 17:34

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;

Petit nouveau ! | 6 Messages

11 janv. 2011, 19:45

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

11 janv. 2011, 23:43

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;
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 6 Messages

12 janv. 2011, 16:10

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
Modifié en dernier par catherine63 le 20 janv. 2011, 12:15, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 janv. 2011, 19:23

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.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 6 Messages

13 janv. 2011, 21:51

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
Modifié en dernier par catherine63 le 20 janv. 2011, 12:16, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 janv. 2011, 10:33

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"); }
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

ViPHP
AB
ViPHP | 5818 Messages

14 janv. 2011, 15:42

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

Petit nouveau ! | 6 Messages

17 janv. 2011, 17:19

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

Petit nouveau ! | 6 Messages

20 janv. 2011, 12:18

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