URGENT ... Formulaire et modification de "action"

Signaler
Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003
-
Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003
-
C'est super simple :
sur une page, j'ai un formulaire et plusieurs boutons.
Chaque bouton envoie sur une autre page.
Je me suis fais une fonction "set_action" (simple ... 3 lignes) pour modifier dynamiquement l'attribut ACTION de la balise FORM et valider le formulaire.

No problem avec cette fonction. :)

Là où il y a un hic :sad) :
Sur une autre page, j'utilise une autre fonction "check_champs" pour vérifier qu'aucun champ du formulaire ne soit vide. De même que dans "set_action" je souhaite modifier la propriété ACTION ... J'utilise donc les 2 mêmes instructions (récupération puis affectation).
Mais une erreur se produit ... la propriété ACTION apparait comme un objet (mais l'objet FORM lui même est bien récupéré puisque je parcours les INPUT). :(
La seule différence avec la premiere page est que les INPUT sont dans un tableau et le formulaire englobe le tableau ...

Si qq'un connait le problème, a une idée ou a une solution, merci d'avance ! :)

6 réponses

Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003

Bon ben ... après 3h d'acharnement, je me retrouve comme un con devant une erreur de débutant ...
Dans ma 2e page, j'avais un INPUT dont le NOM était "action" d'où confusion pour le navigateur (la propriété de FORM ou l'object INPUT ?) qui prennait l'INPUT ...

:big)
Messages postés
13
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
30 octobre 2002

Bonjour,

J'ai besoin d'aide et il me semble que ta solution est ce que je cherche....

Voila j'ai un formulaire de gestion client avec un bouton creer, modifier, supprimer...
Je n'arrive pas à programmer une action différente sur chaque bouton,
Si creer alors page .creer avec paramètre idclient à 0
si Modifier alors même page mais idclient = idclientactif
si supprimer alors page de suppression avec id_client = idclientactif

j'ai pigé la redirection dans la balise input avec un onclick mais c'est le apssage des paramètres qui me fait défaut...

Merci de ta réponse
Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003

C'est le genre de technique que j'utilise sur d'autres pages ...

Pour aller où tu veux il te suffit de faire comme moi ... une fonction JS avec en paramètre la page de destination :

function set_action(dest)
{
f = event.srcElement.form;
f.action = dest;
f.submit();
}

Ceci déclenché par un onclick sur les boutons ...
(dest = "" si tu souhaite rester sur la meme page)

Pour le passage de paramètre, tu peux ajouter un paramètre :

function set_action(dest, idclient)
{
f = event.srcElement.form;
f.action = dest;
f.client = idclient;
f.submit();
}

avec, dans le formulaire :

Il te suffit de mettre la valeur idclient que tu souhaite à l'appel (valeur pour chaque bouton ...)

C'est exactement pareil que moi sauf que mon champ caché, je l'avais appelé "action", d'où mon problème ...

Pour plus d'aide : guidal@free.fr
Messages postés
13
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
30 octobre 2002

aurais-tu un petit exemple de code complet, si je peux abuser

Merci
Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003

ok ... np
Je m'en occupe demain au boulot ...
Messages postés
85
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
9 octobre 2003

Voilà pour l'exemple ...

<%@ Language= VBScript %>
<%
option explicit

dim idclientactif

' Récupération de la valeur de la variable session
idclientactif = Session("idclient")

%>
<HTML>
<HEAD>
<TITLE>Utilisation JS</TITLE>
<script language="JavaScript">
//<!--

// Cette fonction modifie l'attribut ACTION
// de la balise FORM contenant l'élément appelant.
// Le formulaire est ensuite directement envoyé.
function set_action($action, $id)
{
  $form = event.srcElement.form;
  $form.action = $action;
  document.all("ident_client").value = $id
  $form.submit();
}

// Demande de confirmation avant soumission
function confirmer($msg, $action, $id)
{
  if (confirm($msg))
    set_action($action, $id);
}

//-->
</script>
</HEAD>

<center>

 Titre 

<form method ="POST">

<hr width="25%">

Informations clients : {provenants de la BD}

  
  
  ')">
  ')">
  ')">
  ')">
</form>

<hr width="25%">

</center>

</HTML>



C'est relativement simple ...