Appel de fonction javascript dans un form

Arch -  
 Arch -
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   Statut Membre Dernière intervention   894
 
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
Arch
 
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
Arch
 
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   Statut Membre Dernière intervention   894
 
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
Arch
 
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   Statut Membre Dernière intervention   894
 
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
Arch
 
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   Statut Membre Dernière intervention   894
 
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
Arch
 
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
Arch
 
ou bien codeClient="javascript:get_form_value(...)" ?
0
Arch
 
même <code> codeClient="<?php echo "<script>get_form_value(...)</script>"?>" ne fonctionne pas ...
0