[RESOLU] Afficher une url avec des conditions - Méthode GET php

Eléphanteau du PHP | 24 Messages

10 juin 2014, 10:10

Bonjour,

Je me suis bien renseignée sur la méthode get, j'ai compris comment afficher des données dans l'url et les récupérer.
Mais j'ai petit problème... J'ai un formulaire avec une liste déroulante de plusieurs ville , je voudrai qu'en sur " ok " ( le bouton de mon formulaire), j'ai une condition, qui dise : si ville = ESPARROS, alors affiche cette url : http://wcf.tourinsoft.com/Syndication/c ... ingCOMMUNE eq 'ESPARROS'
Si ville=CAUTERET, alors affiche cette url : http://wcf.tourinsoft.com/Syndication/c ... ingCOMMUNE eq 'CAUTERET' et ainsi de suite.

Cette URL , c'est un fichier xml.
J'espère que je me suis fait bien comprendre.... :?
Une petite piste pou m'aider ? Merci !!!!!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 juin 2014, 17:57

salut,

l'action du formulaire doit mener a une url précise c'est bien cela ?

est ce que tu est obligé de passer par php ? (validation quelconque à faire coté serveur).

Si ce n'est pas le cas tu peux le faire en javascript.
en ajoutant un Evénement on click sur le bouton (qui passe du type submit au type button) tu peux le faire facilement.

exemple
<html>
<head>
<script type="text/javascript">
function validForm() {
    var select = document.getElementById('ville');
    var valeur = select.options[select.selectedIndex].value;

    location.href = 'ton url ' + valeur;
}
</script>
</head>
<body>
<form>
<select id="ville">
<option>ville 1</option>
<option>ville 2</option>
</select>
<button onclick="validForm()" >clic me</button>
</form>
</body>
</html>
en php le principe est le même sauf que c'est lors de la validation du formulaire que tu utilise la fonction header pour envoyer l'entête Location pour l'url que tu aura construit (avec les données issues de ton formulaire qu'il soit get ou post peux importe).


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 24 Messages

11 juin 2014, 09:06

Merci moogli de ta réponse

Voici ce que j'ai fait en php :
    <?php

if($_GET['ListingCOMMUNE'] == 'ESPARROS')
{
     header("Location: http://wcf.tourinsoft.com/Syndication/cdt65/b1155573-8443-49fb-a3d0-bb05526278e6/Objects?filter eq 'ESPARROS'"); //redirection 
}
if($_GET['ListingCOMMUNE'] == 'TIBIRAN-JAUNAC')
{  
    header("Location: http://wcf.tourinsoft.com/Syndication/cdt65/b1155573-8443-49fb-a3d0-bb05526278e6/Objects?filter=ListingCOMMUNE eq 'TIBIRAN-JAUNAC'"); 
} 

if($_GET['ListingCOMMUNE'] == 'CAPVERN')
{  
  header("Location: http://wcf.tourinsoft.com/Syndication/cdt65/b1155573-8443-49fb-a3d0-bb05526278e6/Objects?filter=ListingCOMMUNE eq 'CAPVERN'"); //redirection 
}

if($_GET['ListingCOMMUNE'] == 'HECHES')
{  
  header("Location: http://wcf.tourinsoft.com/Syndication/cdt65/b1155573-8443-49fb-a3d0-bb05526278e6/Objects?filter=ListingCOMMUNE eq 'HECHES'"); //redirection 
}

Le problème, c'est que pour que les url soient bons, il faudrait qu'au lieu de filter , j'ai $filter. C'est une syntaxe à respecter pour filtrer des données xml... Mais je n'arrive pas à mettre ce " $ " , il ne me le prend pas.
Sais tu pourquoi ?

Sinon en javascript, je n'y connais rien... est ce que je peux mettre ce script javascript à l'intérieur de mon php, où est ce que je vire le php ?
Merci !!

Mammouth du PHP | 2278 Messages

11 juin 2014, 09:15

IL EXISTE AUSSI:
<form action="demo_form.asp" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<button type="submit">Submit</button><br>
<button type="submit" formaction="demo_admin.asp">Submit as admin</button>
</form>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 24 Messages

11 juin 2014, 09:20

Salut sirakawa

Merci de ton aide
Je ne comprends pas bien où tu veux en venir, tu mets plusieurs bouton en fonction du nombre d'option de la liste ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 juin 2014, 09:38

sinon tu n'as aucun intérêt à avoir autant de if / else, utilise simplement la concaténation.

exemple
<?php
if(!empty($_GET['ListingCOMMUNE'])){
    header('Location: http://wcf.tourinsoft.com/Syndication/c ... cts?$filter eq \''.$_GET['ListingCOMMUNE'].'\'');
}
pour ce qui est de $filter, le $ n'étant dans ton code exemple je ne peux que supposer que php t'indique qu'il n'existe pas de variable filter et qu'il remplace pour "null".

L'utilisation des doubles quote pour les chaines de caractères entraîne que php va tester la chaîne pour voir s'il y a des remplacement de variables a faire dedans et $filter est une syntaxe de variable valide pour php.

C'est pour cela que je lui préfère la syntaxe a simple quote et que j'utilise la concaténation, cela à aussi l'avantage d'être plus clair à la lecture.


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 24 Messages

11 juin 2014, 09:54

Je te remercie Mooglie ça fonctionne !
Merci beaucoup pour ton aide !!! :D