Appel de fonction javascript dans un form

Fermé
Arch - Modifié par Arch le 1/06/2012 à 17:00
 Arch - 4 juin 2012 à 14:11
Bonjour tout le monde,
Je voulais savoir s'il était possible dans un formulaire HTML d'appeler une fonction javascript qui me retourne la valeur à passer à la page dans "action" ?
Comme ceci :
<form method="POST" action="ajout.php?codeClient=<script>get_form_value('num_dpt', 'typ_col');</script>"> 


Si oui, quelle serait la syntaxe?
Merci de votre aide!
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 juin 2012 à 09:58
utiliser la valeur renvoyée par la fonction comme valeur du paramètre à envoyer à la nouvelle page

dans la fonction que je t'ai mis plus haut, c'est la fonction elle même qui rajoute le parametre a envoyer par:
document.forms['form1'].action += "?num_dpt="+value1+"&typ_col="+value2;



mais pourquoi veux tu absolument envoyer la valeur via l'url dans action=

lors que le formulaire est envoyé les valeurs saisies dans les input sont transmises au script ajout.php

tu récupéres dans ce script $code_client=$_POST['code_client']

si ce dernier est dans l'input ayant comme name="code_client" de ton formulaire
2
d'accord je vois comment ça marche. il faut rien retourner dans la fonction js? j'ai essayé mais rien ne se passe.
	<form method="POST" name="add" action="ajout.php" onsubmit="get_form_value('num_dpt', 'typ_col');" >

et
function get_form_value(num_dep, typ_col)
{
	document.forms['add'].action += ?codeClient=(document.getElementById(typ_col).value)+(document.getElementById(num_dep).value);
}
0
ah, il fallait mettre quelques guillemets

	document.forms['add'].action += "?codeClient="+document.getElementById(typ_col).value+document.getElementById(num_dep).value;
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 juin 2012 à 17:34
il faut une action un évenement pour déclencher un appel JS, on submit par exemple lors du click sur le bouton envoi

<script type="text/javascript" >

function get_form_value(){
	var value1=document.getElementById('num_dpt').value;
	var value2=document.getElementById('typ_col').value;
	document.forms['form1'].action += "?num_dpt="+value1+"&typ_col="+value2;
	//ou
	//document.forms['form1'].action += "?CodeClient="+value1+"_"+value2;
}

</script>


<form name="form1" method="POST" action="ajout.php=" onsubmit="get_form_value();" >

<input type="txte" name="num_dpt" id="num_dpt" value="" />
<input type="txte" name="typ_col" id="typ_col" value="" />
1
merci, intéressant
donc j'essaie de faire ça

<form method="POST" action="ajout.php?codeClient=\"onsubmit='get_form_value('num_dpt', 'typ_col');'\"" >


mais ça n'a pas l'air de l'exécuter, dans ma barre d'adresse j'ai quelque chose comme ça
/ajout.php?codeClient="onsubmit='get_form_value('num_dpt',%20'typ_col');'"
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 juin 2012 à 17:48
non le onsubmit ne doit pas être dans action=
c'est un argument au même titre que name method action

dans mon code il y avait un = en trop

<form name="form1" method="POST" action="ajout.php" onsubmit="get_form_value();" >
1
ah je vois.
du coup ça fait pas vraiment ce que je veux faire, qui consiste à utiliser la valeur renvoyée par la fonction comme valeur du paramètre à envoyer à la nouvelle page.
je sais pas si c'est possible!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 juin 2012 à 13:28
que la valeur soit envoyée par la fonction elle même lors du rajout dans action ou par un retour de fonction c'est le résultat qui compte

d'autre part je ne voit pas l'intérêt d'envoyer une valeur d'un formulaire lors du submit de celui ci par l'url (action=.....)
alors que les valeurs du formulaires sont toutes postées et récupérables facilement dans le script appelé ajout.php
en $_POST['....']
1
je comprends, c'est un peu compliqué en fait. c'est juste que j'ai plusieurs cas de figures où le code client va être passer en paramètre dans l'url et c'est ma condition pour rentrer dans le bloc de modification au chargement de la page.

if (isset ($_GET['codeClient']))

j'utilise mon code client dans ce bloc, mais dans ce cas j'ai pas le code client directement, il est formé de 2 champs de formulaires donc je voulais juste les concaténer pour envoyer le code en paramètre.
Voilou en tout cas ça marche bien comme ça je connaissais pas donc merci bien!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ou bien codeClient="javascript:get_form_value(...)" ?
0
même <code> codeClient="<?php echo "<script>get_form_value(...)</script>"?>" ne fonctionne pas ...
0