Envoi de variable par le biais d'un formulair
matteo
-
matteo -
matteo -
Bonjour,
Je cherche actuellement une solution pour utiliser de l'URL rewriting après transmission de variable par le biais d'un formulaire (menu déroulant)... Cela n'est pas facile mais j'ai trouver la solution, je vous explique pour que vous compreniez mieux ma question :)
Je suis sur une page quelconque avec un menu déroulant et un bouton type submit pour envoyer en GET un ID.
Une fois cet idée envoyé en réalité j'ai fait en sorte que l'on reste sur la même page qu'auparavant pour juste récupérer l'ID de ce que l'utilisateur a sélectionner. Voilà la première étape.
Pour la deuxième, j'ai un deuxième petit formulaire (sur la même page donc) qui va récupérer l'ID posté en GET pour que je puisse, dans la balise from, créer le lien cible qui correspond parfaitement à mon URL rewriting et cela fonctionne quand on click sur le second submit, je suis bien redirigé vers ma page "rewrité".
Pour ce qui ont compris mon charabiat :D Vous aurez constaté que j'ai du coup deux boutons submit sur la même page et pour le même menu déroulant ...
Je cherche donc une solution pour que à chaque fois qu'une personne prend une option dans un des menus déroulants, l'ID correspondant à l'option s'incrémente dans l'URL en GET sans être obligé de clicker, pour créer l'illusion qu'il n'y a qu'un envoie de formulaire alors que quand l'utilisateur clickera ce sera le deuxième envoi ....
J'espère que vous m'aurez compris :)
Merci à ceux qui se creuseront la tête et aux autres aussi :)
Je cherche actuellement une solution pour utiliser de l'URL rewriting après transmission de variable par le biais d'un formulaire (menu déroulant)... Cela n'est pas facile mais j'ai trouver la solution, je vous explique pour que vous compreniez mieux ma question :)
Je suis sur une page quelconque avec un menu déroulant et un bouton type submit pour envoyer en GET un ID.
Une fois cet idée envoyé en réalité j'ai fait en sorte que l'on reste sur la même page qu'auparavant pour juste récupérer l'ID de ce que l'utilisateur a sélectionner. Voilà la première étape.
Pour la deuxième, j'ai un deuxième petit formulaire (sur la même page donc) qui va récupérer l'ID posté en GET pour que je puisse, dans la balise from, créer le lien cible qui correspond parfaitement à mon URL rewriting et cela fonctionne quand on click sur le second submit, je suis bien redirigé vers ma page "rewrité".
Pour ce qui ont compris mon charabiat :D Vous aurez constaté que j'ai du coup deux boutons submit sur la même page et pour le même menu déroulant ...
Je cherche donc une solution pour que à chaque fois qu'une personne prend une option dans un des menus déroulants, l'ID correspondant à l'option s'incrémente dans l'URL en GET sans être obligé de clicker, pour créer l'illusion qu'il n'y a qu'un envoie de formulaire alors que quand l'utilisateur clickera ce sera le deuxième envoi ....
J'espère que vous m'aurez compris :)
Merci à ceux qui se creuseront la tête et aux autres aussi :)
A voir également:
- Envoi de variable par le biais d'un formulair
- Formulaire en ligne de meta - Guide
- Votre envoi est sur son site de distribution. nous le préparons pour le mettre en livraison ✓ - Forum Consommation & Internet
- Formulaire de réclamation facebook compte désactivé - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Envoi de sms par internet - Guide
13 réponses
Bonjour,
Bon déjà ce qui est sûr c'est qu'il faut utiliser du javascript. Ensuite il faut un onchange sur la ou les balises select des listes déroulantes et appeler une fonction javascript qui stocke le-dit id ensuite vous pouvez toujours forcer le submit du formulaire pour prendre en compte le choix de l'id.
Bon déjà ce qui est sûr c'est qu'il faut utiliser du javascript. Ensuite il faut un onchange sur la ou les balises select des listes déroulantes et appeler une fonction javascript qui stocke le-dit id ensuite vous pouvez toujours forcer le submit du formulaire pour prendre en compte le choix de l'id.
Merci pour cette réponse rapide :)
Oui je me douté bien que java viendrait pointer son nez ... seulement je suis en école de télécommunication et je commence seulement le java :D
Bref vous avez parler de forcer le submit ? comment ? ou ? que se fasse ? :)
c'est ce que je cherche en réalité et même si on voit une légère actualisation de la page au moment du choix dans le menu déroulant cela ne me dérange pas :)
MErci encore =:)
Oui je me douté bien que java viendrait pointer son nez ... seulement je suis en école de télécommunication et je commence seulement le java :D
Bref vous avez parler de forcer le submit ? comment ? ou ? que se fasse ? :)
c'est ce que je cherche en réalité et même si on voit une légère actualisation de la page au moment du choix dans le menu déroulant cela ne me dérange pas :)
MErci encore =:)
Bonjour,
Voici ce que je pensais faire mais en fait en utilisant un formulaire en méthode post car le get avec javascript n'est pas ni utile, ni sécurisé :
Vous avez un formulaire :
<form name="monform" method="post" action="pageactuelle.php">
<select name="choix" id="idChoix" onchange="stockeID(this);">
[...]
<input type="hidden" id="idEnvoye"/>
</form>
ensuite niveau JS :
function stockeID(selection) {
//récupération de la valeur sélectionnée
selection = selection.options[selection.selectedIndex].value;
//onstocke le résultat dans le champ caché
document.getElementById('idEnvoye').value = selection;
//on provoque l'envoi du formulaire
document.forms["monform"].submit();
}
La valeur de l'ID sera alors dnas le champ idEnvoye, récupérable par un if(isset($_POST['idEnvoye])) etc
Voici ce que je pensais faire mais en fait en utilisant un formulaire en méthode post car le get avec javascript n'est pas ni utile, ni sécurisé :
Vous avez un formulaire :
<form name="monform" method="post" action="pageactuelle.php">
<select name="choix" id="idChoix" onchange="stockeID(this);">
[...]
<input type="hidden" id="idEnvoye"/>
</form>
ensuite niveau JS :
function stockeID(selection) {
//récupération de la valeur sélectionnée
selection = selection.options[selection.selectedIndex].value;
//onstocke le résultat dans le champ caché
document.getElementById('idEnvoye').value = selection;
//on provoque l'envoi du formulaire
document.forms["monform"].submit();
}
La valeur de l'ID sera alors dnas le champ idEnvoye, récupérable par un if(isset($_POST['idEnvoye])) etc
Merci pour cette solution :)
Je vais tenter d'appliquer cela :) et je posterais pour dire si tout fonctionne :)
Merci encore :)
Je vais tenter d'appliquer cela :) et je posterais pour dire si tout fonctionne :)
Merci encore :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello, j'ai encore une petite question :)
tout semble marché correctement seulement je n'arrive pas à rappeler la variable qui a été stocké avec le JS je pense que je dois faire une petite erreur au niveau du nom de la variable.
En sachant que j'ai utilisé les mêmes noms que vous pour les script :)
Une idée ?
tout semble marché correctement seulement je n'arrive pas à rappeler la variable qui a été stocké avec le JS je pense que je dois faire une petite erreur au niveau du nom de la variable.
En sachant que j'ai utilisé les mêmes noms que vous pour les script :)
Une idée ?
Bah avec le petit code en javascript si j'ai bien tout compris on force l'envoi "automatique" du choix fait par l'utilisateur dans le menu déroulant sans qu'il est à clicker sur quelconque bouton.
Or pour accéder à l'URL que je vais fabriquer, il faut que je récupère l'ID du choix qui a été posté.
:)
Or pour accéder à l'URL que je vais fabriquer, il faut que je récupère l'ID du choix qui a été posté.
:)
Oui c'est vrai je n'avais pas fait attention ... désolé je vais essayer alors :)
Je viendrais vous dire comment ça fonctionne :)
Merci:)
Je viendrais vous dire comment ça fonctionne :)
Merci:)
Je pense que je dois avoir un problème ....
Je mets le code car il y a des choses que je dois ne pas comprendre :)
Surtout ne pas faire attention c'est un peu crade comme code pour l'instant :)
Je mets le code car il y a des choses que je dois ne pas comprendre :)
Surtout ne pas faire attention c'est un peu crade comme code pour l'instant :)
<form method="post" name="monform" action="projet-professionnel.php">
<select name="ID" id="idID" onchange="stockeID(this);">
<?
$query_listeForm = mysql_query("SELECT ID , nom FROM fiche_metier WHERE domaine='1'");
$listeForm = mysql_fetch_array($query_listeForm);
$titre=$listeForm['nom'];
$titre=str_replace("È" , "e" , $titre);
$titre=str_replace("‡" , "a" , $titre);
$titre=str_replace(" " , "-" , $titre);
$titre=str_replace("/" , "-" , $titre);
$titre=str_replace("Ë" , "e" , $titre);
$titre=str_replace("\'" , "-" , $titre);
$titre=str_replace("'" , "-" , $titre);
$titre=str_replace(":" , "-" , $titre);
$titre=strtolower($titre);
echo "<option value=".$listeForm['ID'].">";
echo $listeForm['nom']."-".$listeForm['ID'];
echo "</option>";
?>
</select>
<input type="hidden" id="idEnvoye"/>
</form>
<script language="javascript">
function stockeID(selection)
{
selection=selection.options[selection.selectedIndex].value;
document.getElementByld('idEnvoye').value=selection;
document.forms["monform"].submit();
}
</script>
<?
if(isset($_POST['idEnvoye']))
{
?>
<form method="get" action="<? echo $titre."-".$_POST['idEnvoye'].".html";?>">
<input type="submit"/>
</form>
<?
}
?>
pour info je post aussi le code qui en réalité fonctionne vraiment comme je le souhaite (à l'exception du fait que ce n'est pas possible d'avoir deux boutons submit sur le même menu...)
<form method="post" name="monform" action="projet-professionnel.php">
<select name="ID" id="idID" onchange="stockeID(this);">
<?
$query_listeForm = mysql_query("SELECT ID , nom FROM fiche_metier WHERE domaine='1'");
$listeForm = mysql_fetch_array($query_listeForm);
$titre=$listeForm['nom'];
$titre=str_replace("È" , "e" , $titre);
$titre=str_replace("‡" , "a" , $titre);
$titre=str_replace(" " , "-" , $titre);
$titre=str_replace("/" , "-" , $titre);
$titre=str_replace("Ë" , "e" , $titre);
$titre=str_replace("\'" , "-" , $titre);
$titre=str_replace("'" , "-" , $titre);
$titre=str_replace(":" , "-" , $titre);
$titre=strtolower($titre);
echo "<option value=".$listeForm['ID'].">";
echo $listeForm['nom']."-".$listeForm['ID'];
echo "</option>";
?>
</select>
<input type="hidden" id="idEnvoye"/>
</form>
<script language="javascript">
function stockeID(selection)
{
selection=selection.options[selection.selectedIndex].value;
document.getElementByld('idEnvoye').value=selection;
document.forms["monform"].submit();
}
</script>
<?
if(isset($_POST['idEnvoye']))
{
?>
<form method="get" action="<? echo $titre."-".$_POST['idEnvoye'].".html";?>">
<input type="submit"/>
</form>
<?
}
?>
Bonjour,
vous avez oublié de mettre une value à votre input type="submit", ce qui fait déjà qu'il n'a pas de nom, donc je ne suis pas sûre qu'il puisse être visible sans.
Apparaît-il quand vous effectuez une sélection dans la liste déroulante?
vous avez oublié de mettre une value à votre input type="submit", ce qui fait déjà qu'il n'a pas de nom, donc je ne suis pas sûre qu'il puisse être visible sans.
Apparaît-il quand vous effectuez une sélection dans la liste déroulante?
Oui effectivement le submit n'a pas de value mais en réalité quand c'est le cas la valeur par défault est "envoyer"
Bref, j'ai fait une erreur j'ai recopier exactement le même code au lieu de mettre celui qui marche comme je le veux mais qui n'est pas une solution viable ... voici donc mon code à moi :)
Bref, j'ai fait une erreur j'ai recopier exactement le même code au lieu de mettre celui qui marche comme je le veux mais qui n'est pas une solution viable ... voici donc mon code à moi :)
<form method="post" >
<select name="ID">
<?
$query_listeForm = sprintf("select ID,nom from fiche_metier where domaine='1' order by ID ASC");
$listeForm = mysql_query($query_listeForm, $IAE) or die(mysql_error());
$row_listeForm = mysql_fetch_assoc($listeForm);
$totalRows_listeForm = mysql_num_rows($listeForm);
for($j=0;$j<$totalRows_listeForm;$j++){
mysql_data_seek($listeForm,$j);
$row_listeForm = mysql_fetch_assoc($listeForm);
echo "<option value=".$row_listeForm['ID'].">".$row_listeForm['nom'];
echo "</option>";
}
?>
</select>
<input type="submit" value="etape 1"/>
</form>
<?
$recherche_nom=mysql_query("SELECT nom FROM fiche_metier WHERE ID='".$_POST['ID']."'");
$resultat_nom=mysql_fetch_array($recherche_nom);
$titre=str_replace("È" , "e" , $resultat_nom['nom']);
$titre=str_replace("‡" , "a" , $titre);
$titre=str_replace(" " , "-" , $titre);
$titre=str_replace("/" , "-" , $titre);
$titre=str_replace("Ë" , "e" , $titre);
$titre=str_replace("\'" , "-" , $titre);
$titre=str_replace("'" , "-" , $titre);
$titre=str_replace(":" , "-" , $titre);
$titre=strtolower($titre);
?>
<form method="get" action="<? echo $titre."-".$_POST['ID'].".html";?>">
<input type="submit" value="etape 2"/>
</form>