Envoyer des parametres dans URL

Résolu/Fermé
cherifa20 Messages postés 13 Date d'inscription vendredi 19 juillet 2013 Statut Membre Dernière intervention 8 août 2013 - 8 août 2013 à 11:55
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 8 août 2013 à 17:05
Bonjour,
s'il vous plait j'ai une petite question je veux faire un service de traduction comme google traduction dans mon code je passe l url de google traduction mais il me traduise pas ce que je saisie voila le code que j'ai mis :
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
function Translation()
{
error_reporting(E_ALL ^ E_NOTICE); //


$from=$_POST['from'];
$to=$_POST['to'];
$text=$_POST['text'];

$widget_content="<div>
<div class='field'>
<form method='POST' action='http://translate.google.com/#'".$from."'/'".$to."'/'".$text.">

<input type='text' id='text' placeholder='text a traduire' style='height: 40px;whith:100px;' name='text' /><br>

<select>
<option value='en'>English</option>
<option value='fr'>Français</option>
<option value='al'>Allemnad</option>
</select>
<input type='submit' value='GO'/>
</form>
<div class='cac-clear'></div>
</div>
<div class='field'>
<div class='cac-clear'></div>
</div>
</div>";

return $widget_content;

}
?>


avec ce code la qu'on je saisie dans la zone de text par exemple salut et je choisi la langue english je clique sur go il me renvoi vers le site google traduction avec ce URL
https://translate.google.com/
moi ce que je veux c'est ça: https://translate.google.com/ fr/en/salut%20tout%20le%20monde
quelqu'un peut m'aider s'il vous plais

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 8/08/2013 à 17:10
tu n'as pas mis de name dans les <select

et tu fais une grosse erreur de principe
$_POST sont des valeurs récupérées sur le serveur lorsque le formulaire a été posté (bouton submit)
hors tu rajoutes ces valeurs dans action= ...
l'url contenue dans action= est appelée justement au moment du submit donc les valeurs ne sont pas encore connues

une solution en passant par du javascript :
et en mettant un type button au lieu de submit

<script type="text/javascript">
function envoyer_valeurs(formulaire){
 //recup des valeurs dans le formulaire
 var from=document.getElementById('from').value;
 var to=document.getElementById('to').value;
 var text=document.getElementById('text').value;
 //ajout dans l'url
 window.location.href="https://translate.google.com/"+from+"/"+to+"/"+text+"";
}

</script>
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
function Translation()
{
error_reporting(E_ALL ^ E_NOTICE); //

/*
$from=$_POST['from'];
$to=$_POST['to'];
$text=$_POST['text'];
*/
$widget_content="<div>
<div class='field'>

<form method='POST' action=''>

<input type='text' id='text' placeholder='text a traduire' style='height: 40px;whith:100px;' name='text' /><br>
FROM:
<select name='from' id='from'>
<option value='en'>English</option>
<option value='fr'>Français</option>
<option value='al'>Allemnad</option>
</select>
TO:
<select name='to' id='to'>
<option value='en'>English</option>
<option value='fr'>Français</option>
<option value='al'>Allemnad</option>
</select>
<input type='button' value='GO' onclick='envoyer_valeurs(this.form);'/>
</form>
<div class='cac-clear'></div>
</div>
<div class='field'>
<div class='cac-clear'></div>
</div>
</div>";

return $widget_content;

}

echo translation();
?> 
0