Passer une variable à une page via l'url?

Catégories:

Bonjour,

j’ai codé une vue dans une page car ma requête est trop complexe pour view (url : /vue_selon_valeur)

et j’ai besoin de passer un entier à cette vue, entier qui sera récupéré pour construire la requête

donc, j’aurais besoin de faire ça : des liens
vue_selon_valeur/100
vue_selon_valeur/200…

et la page vue_selon_valeur récupère le 100 où le 200, l’insère dans la requête et voila.

Sauf que cela ne marche pas. le 100

si je saisi l’url «vue_selon_valeur», il affiche plus ou moins la page (vu que la requête est incomplète…)
et si je saisi l’url «vue_selon_valeur/100», il me dit que «La page demandée n’a pu être trouvée.»

alors, je voulais savoir si je pouvais procéder de cette manière où s’il faut que je passe autrement (Drupal nettoie les url et donc je ne pourrais pas) ?
A moins que ce ne soit Apache (via le .htaccess) qui nettoie l’url ?

j’ai les «cleans urls» d’activés ainsi que le module «pathauto»

Bon week-end à tous

#

Je pense que ce que tu veux c’est utiliser les arguments de views car du coup 100 devient un argument de ta vue, apres il faut configurer ta vue pour prendre cet argument et l’associer a un champs.

#

quelque chose du genre.

en fait, pour un catalogue, chaque produit a une valeur Valeur1 de type réel (par ex : 2.658)

et je dois afficher un lien dans chaque node de produit, qui pointera vers une vue affichant les articles équivalents,
les articles équivalents étant ceux dont la valeur est comprise entre +/-0.01 de la Valeur1 du node affiché

Bref, dans mon exemple, il me faut récupérer dans ma vue les articles dont Valeur1 est comprise en 2.648 et 2.668

Et j’ai eu beau retourner view dans tous les sens, je n’ai pas réussi à passer un numérique avec sa virgule en argument.

d’où l’idée (bâtarde, je l’admet) de coder la vue et de passer valeur1*1000 en argument dans l’url,
puis de le diviser par 1000 pour le balancer dans le SELECT de la vue.
et aussi d’ «accélerer» la vue.

mais pour cela, il faut que je puisse passer le paramètre dans l’url.

Aurais-je râté quelque chose dans view ?

www.on-brade.com, les bonnes affaires près de chez vous

#

Je pense que c’est parce que la virgule agit comme separateur des arguments multiples et que les decimales en anglais (et la plupart du tps en programmation) sont separees par un point ;)

#

Bon, du coup, je suis reparti sur view
donc, mon probleme est d’afficher tous les nodes dont le champ «valeur» est compris entre 1.64 et 1.66

quand je construis ma vue, avec l’aperçu, que je mette 1.66 ou 1,66 (point ou virgule), il me donne les nodes ayant pour valeur «1». Grrrr.

Mon champ CCK «valeur» est de type «Réel (float)». je viens de tenter avec un «Décimal», pas mieux.
Quelqu’un a une idée ?

www.on-brade.com, les bonnes affaires près de chez vous

#

En fait, Views ne gère pas les décimaux passés en arguments
http://drupal.org/node/434896

bon, voila, ben j’avais qu’à aller plus tôt voir les issues de views (j’avais même tenter de modifier le paramétrage d’Alias)

J’en reviens donc à coder ma vue et trouver comment récupérer l’arguement passé en paramètre dans l’url. Si quelqu’un peut me tuyauter la-dessus, ca serait sympa

a+

www.on-brade.com, les bonnes affaires près de chez vous

#

Bon, donc,

on ne peut passer les arguments dans l’url que comme ça :
http://www.site.com/page_xxx ?param1=2.56

et on le récupère das la page avec :
$valeur = $_GET[‘param1’] ;

www.on-brade.com, les bonnes affaires près de chez vous

#

Salut,

Tu peux peut-être passer quelquechose du genre http://www.site.com/page_xxx ?param1=2:56
ou utiliser un autre caractère séparateur à la place de ta virgule puis faire un

$valeur = $_GET['param1'];
$valeur = str_replace(':','.', $valeur);

C’est une idée…pour la faisabilité, je ne sais pas si c’est réalisable.

Drupal…c’est d’la balle !

#

Faudrait voir,

en tout cas, pour moi, maintenant ça marche avec un décimal dans l’url et une vue codée en PHP (cf. mon post au-dessus)

merci quand même

www.on-brade.com, les bonnes affaires près de chez vous

Syndiquer le contenu