begin process at 2012 05 28 23:37:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Changer l'action d'un formulaire de recherche en PHP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changer l'action d'un formulaire de recherche en PHP

dimanche 15 mars 2009 à 18:28:29 | Changer l'action d'un formulaire de recherche en PHP

JABE

Bonjour,

Je cherche un moyen de changer l'action d'un formulaire de recherche en PHP.

Exemple de code HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Changement en PHP</title>
</head>
<body>
<form action="action.php" method="post">
<input name="formulaire" type="text" />
<p><label for="youtube"><input name="video" checked="checked" id="youtube" type="radio" />Youtube</label>
<p><label for="dailymotion"><input name="video" id="dailymotion" type="radio" />Dailymotion</label>
<p><label for="google_video"><input name="video" id="google_video" type="radio" />Google Video</label>
<p><input type="submit" value="Envoyer" /></p>
</form>
</body>
</html>

Maintenant c'est pour le fichier action.php que je suis largué...

En fait il faudrait que lorsque le bouton radio youtube est coché ça lance une recherche sur:
http://www.youtube.com/results?search_type=&amp;search_query=
et donc qu'après query= ça récupère le texte remplit dans le formulaire.

Par contre si dailymotion est coché ça lancerait:
http://www.dailymotion.com/relevance/search/
Et si Google Video est coché ça lancerait:
http://video.google.com/videosearch?q=

J'ai cherché en vain des codes équivalents en PHP (et non en Javascript) et je n'ai rien trouvé, voilà pourquoi je fais appel à vous .

vendredi 20 mars 2009 à 19:56:08 | Re : Changer l'action d'un formulaire de recherche en PHP

stanilou

Membre Club
Tout simplement car c'est impossible en PHP... La seule façon serais que quand tu clique sur ton bouton radio, ça recharge ta page en détectant le bouton radio précedement coché pour modifier le contenu du champ "action"....

Passe par le javascript, c'est vraiment pas compliqué pour faire ça.
vendredi 20 mars 2009 à 23:28:25 | Re : Changer l'action d'un formulaire de recherche en PHP

JABE

Citation de stanilou: "Tout simplement car c'est impossible en PHP"

Si c'est possible en PHP !
Je me suis pris la tête dessus et j'ai réussi voir ici:
[ Lien ]

Ça marche parfaitement mais j'aimerais améliorer mon code pour l'alléger.

En fait avec le code PHP actuel change l'action du formulaire en fonction de ce que je mets comme value="" sur le bouton radio, j'aimerais faire la même chose mais en fonction de l'id du bouton radio.
Ça allégera un peu mon code car j'utilise déjà les id pour les <label>.
Mais comment faire ça en PHP ?
En javascript il faut passer par un getElementById mais en PHP ?

Voici mon code php actuel:
<?php

$champ_de_recherche = trim($_POST['champ_video']);
$moteur_de_recherche = trim($_POST['video']);

if (empty($champ_de_recherche)) {

echo "Veuillez entrer une valeur de recherche";

} else {

$url_params = preg_replace('/(\ )+/', '+', $champ_de_recherche);

switch ($moteur_de_recherche) {

case 'youtube':
$url = 'http://www.youtube.com/results?search_type=&amp;search_query=' . $url_params;
header('Location: ' . $url);
break;

case 'dailymotion':
$url = 'http://www.dailymotion.com/relevance/search/' . $url_params;
header('Location: ' . $url);
break;

case 'google_video':
$url = 'http://video.google.com/videosearch?q=' . $url_params;
header('Location: ' . $url);
break;

default:
echo 'Veuillez s&eacute;lectionner un moteur de recherche';
break;
}
}
?>

Merci d'avance pour votre aide.

samedi 21 mars 2009 à 03:04:32 | Re : Changer l'action d'un formulaire de recherche en PHP

kohntark

Membre Club
Salut,

Je n'ai pas tout lu mais :
Changer l'action d'un formulaire de recherche en PHP
=> c'est impossible en PHP, comme le dit Stanilou.
J'imagine que tu t'es mal exprimé car :
L'"action" d'un formulaire c'est ça :
<form method="post" action="bidule.php">
== impossible à modifier par PHP une fois envoyé au client.
Que tu gères les radios côté php et que tu rediriges vers le moteur qui va bien est une chose, mais ce n'est pas une modification de l'action du formulaire.
En somme ton sujet prête à confusion.

[...]value="" sur le bouton radio, j'aimerais faire la même chose mais en fonction de l'id du bouton radio
=>
Ce qui va surtout alourdir ton code c'est de vouloir passer par des chemins exotiques.
Pour moi ton code ne devrait pas être changer dans ce sens; tu n'as que 3 choix, inutile de chercher la petite bête (avec plusieurs dizaines de choix il faudrait sans doute procéder autrement) Et en plus il est bien plus lisible comme ça !!

Si tu veux alléger pense plutôt à ça :
$moteur_de_recherche = trim($_POST['video']);
=> ne sert à rien

header('Location: ' . $url);
=> tu le répètes à chaque fois => ne sert à rien
=>
switch ($_POST['video']) {
  case 'bidule':
  $url = 'patati';
  break;
  etc ...

}
header('Location:'.$url);

default:
echo 'Veuillez s&eacute;lectionner un moteur de recherche';
break;
=> ne sert à rien puisque tu as forcement un radio actif (rien à voir avec les centrales nucléaires hein)

$url_params = preg_replace('/(\ )+/', '+', $champ_de_recherche);
=> en terme d'allégement la regex n'est peut être pas le meilleur choix (pas testé, à voir)


Tu pourrai faire encore bien mieux, comme virer tout le switch et faire un truc du genre :
$url = array('youtube'=>'http://www.youtube.com/results?search_type=&amp;search_query=',
etc...);
header('Location:'.$url[$_POST['video']].$url_params);

En gros, si tu cherche un allégement réduit ton code d'une quinzaine de ligne mais ne cherche pas à réinventer la poudre côté données formulaire.

Cordialement,

Kohntark -

jeudi 9 juillet 2009 à 17:01:25 | Re : Changer l'action d'un formulaire de recherche en PHP

JABE

Bonjour,

Je remonte ce topic car il y a du nouveau, merci à kohntark pour ses remarques, j'en ai pris note, et j'ai fait évoluer mon code dispo ici.

Par contre kohntark m'avait dit que:

$moteur_de_recherche = trim($_POST['video']);
=> ne sert à rien

Mais quand je l'enlève ça ne fonctionne plus.

D'autre part dans mon code actuel j'utilise 2 fichiers d'actions différents , un pour la recherche audio et un pour la recherche vidéo, existe-t-il un moyen de fusionner ces actions dans un seul fichier action.php mais en gardant 2 formulaires différents ?

Je pense que ce serait mieux car le fichier d'action ne serait chargé qu'une fois par les visiteurs du site.

Voici les code php actuels :

audio_action.php :

<?php

$champ_de_recherche = trim($_POST['champ_audio']);

$moteur_de_recherche = trim($_POST['audio']);

$url_params = preg_replace('/(\ )+/', '+', $champ_de_recherche);

$url = array('deezer'=>'http://www.deezer.com/s.php?s=', 'jiwa'=>'http://www.jiwa.fm/#search/track/', 'last.fm'=>'http://www.last.fm/music?q=');

header('Location:'.$url[$_POST['audio']].$url_params)

?>

 

video_action.php :

<?php

$champ_de_recherche = trim($_POST['champ_video']);

$moteur_de_recherche = trim($_POST['video']);

$url_params = preg_replace('/(\ )+/', '+', $champ_de_recherche);

$url = array('youtube'=>'http://www.youtube.com/results?search_type=&amp;search_query=', 'dailymotion'=>'http://www.dailymotion.com/relevance/search/', 'google_video'=>'http://video.google.com/videosearch?q=');

header('Location:'.$url[$_POST['video']].$url_params)

?>

 

Autre problème pour faire une recherche sur Jiwa il faut que ça soit sous la forme :

http://www.jiwa.fm/#search/track/{%22q%22%3A%22mots+cles%22}

Où « mots+cles » représente les mots tapés par l'utilisateur.

Seulement il y a les caractères %22} après les termes de recherche, et sans ces caractères ça ne fonctionne pas.

Donc comment faire évoluer mon code PHP actuel pour que ça prenne en compte les caractères qu'il y a après les termes de recherche ?

Merci encore pour votre aide.



Cette discussion est classée dans : php, changer, formulaire, recherche, action


Répondre à ce message

Sujets en rapport avec ce message

html ep php [ par manueg ] Bonjour, je débute en déve PHP et je me pose les questions suivantes....J'utilise Dreamweaver et EasyPHP et ApacheMon approche est la suivante: je fai recorset sous dream mx [ par sbailay ] salut je debute en PHP et je rame à max pour faire un recordset un peu particulier:sur la premiere page "recherche.php" j'ai un formulaire "form_reche pbs de variables dans une zone admin [ par attentio ] salut !!!!voila mon probleme j'ai une premiere page (formulaire.php) qui me permet de recuperer des données afin de les modifier, supprimer ou ajoute Switch et php 5 [ par cseagle ] bonsoir à toutes et à tous,voila mon souci :J'ai une page d'inscription avec un formulaire qui renvoi après validation vers cette même page contenant Une action de formulaire variable [ par Bartheleway ] Bonjour, je me demandais si une action de formulaire pouvais être variable ???Le code que j'ai réalisé :$envoie="admin.php";}if ($_GET['choix']=='bart formulaire de recherche via la bdd [ par nikko3619400 ] ce principe marchais bien en affichant des données mais  via un formulaire,j'ai une erreur voila mon code source <font size=" Problème d'action dans un formulaire [ par gretata ] bonjour a tous !! voila j'ai une ereur sur l'action de la page de mon formulaire l'ereur :You don't have permission to access /espac script Formulaire d'insertion et de recherche PHP MYSQL [ par ChrisColumbus ] Bonjour,Je réalise actuellement le site d'une association juridique africaine non gouvernemental sous Joomla. Vous l'aurez compris je ne suis pas du t Recherche développeur petit projet PHP/MySQL [ par xema ] Bonjour, Je suis à la recherche d'un développeur pouvant créer un formulaire PHP simple de saisie d'heures de travail par les employés d'une entrepri formulaire dynamique php ,sqlserver [ par hantouva ] bonjour; voila je fais un site web dynamique en php et jutilise une base de donnees sql server je bloque au niveau du formulaire de recherche qui do


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales