Transformer un lien en un bouton

Fermé
lili - 1 juin 2005 à 09:29
 lili - 1 juin 2005 à 14:13
Bonjour,

j'ai un formulaire sur lequel se trouve des liens vers d'autres formulaires.

Je souhaite lorsqu'on clique sur un lien que cela effectue la sauvegarde du formulaire ( en gros cela revient a fair eun submit).

Je n'arrive pas a effectuer ces manip.

il faudrait que le lien correspondent exactement a mon bouton de type submit qui est construit comme ceci:
 if ($action == 'ajouter')
   {
    $num_enr = $nb_enrs + 1;
    echo '<p align=center><input type="submit" name="Submit" value="Ajouter" ></p>'."\n";
    echo '<INPUT type="hidden" name="num_enr" value="'.$num_enr.'">'."\n";
    echo '<INPUT type="hidden" name="mode" value="formulaire">'."\n";
    echo '<INPUT type="hidden" name="objet" value="'.$objet.'">'."\n";
    echo '<INPUT type="hidden" name="action" value="ajouter">'."\n";
    echo '<INPUT type="hidden" name="statusbd" value="ok">'."\n";
   }


j'ai essayer de faire:

<a href="mapage.html" onclick="javascript:submit();">

mais ca n'a pas marché

16 réponses

Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
1 juin 2005 à 09:45
Salut,

Est ce que tu as essayé comme ça :
<a onclick="submit()">Ajouter</a>

Pas nécessaire de faire un lien.

@+
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
1 juin 2005 à 09:46
P.S. tu peux aussi préciser une mise en forme css pour changer le curseur, de manière à donner l'impression du lien.
0
oui mais mon probleme est que je veux pouvoir en meme temps que je clique sur ce "lien" atteindre mon autre formulaire.

Il faut donc que ce soit un bouton et un lien est ce possible??

si non vous avez une autre solution

mon but est de sauvegarder les données entrées dans le formulaire par l'utilisateur. Ensuite d'aller sur le lien demander puis de cette nouvelle page je retourne sur le formulaire précédent avec les valeurs a l'interieur.

voilou
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
1 juin 2005 à 10:12
Alors pourquoi ne pas traiter les données par la page php pour sauvegarder les données, et au lieu de mettre un message du style "données ajoutées" on redirige le visiteur vers la page du formulaire.

Pour que le formulaire sache que les données ont été modifiées, tu n'as qu'a utiliser une variable du style modif = 1, et si elle n'existe pas tu affiche le formulaire sans valeurs.

T'as compris :D ?

@+
0

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

Posez votre question
Mais je ne veux pas revenir sur la page, je veux aller sur une autre page.

Et mon probleme est que mon lien se situe au milieu du formulaire donc je ne veux pas utiliser le bouton submit qui se situe tout en bas de mon formulaire.

En fait il faut que le formulaire s'enregistre sans que l'utilisateur s'en rende compte.
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
1 juin 2005 à 10:17
Alors là, enregistrer un formulaire sans que l'utilisateur le voie, et partiellement, désolé, mais je ne vois pas. Peut-être quelqu'un pourra t'aider mais là je sèche... :S

Désolé... @+
0
En gros tu a une action differente pour ton form, selon le lien ?
tu peux transformer tes liens en boutons submit, avec
onclick="getElementById('IdDeTonForm').action='url...' ;"

ou bien mettre la meme chose dans la balise <a> de ton lien, mais en ajoutant
...; getElementById('IdDuBoutonSubmit').click();"

Ensuite tu n'as qu'a faire une fonction incluse dans chaque fichier php qui doit recuperer ton form, pour sauver les valeurs... enfin qq chose comme ca !
Tuvois ce que je veux dire ?
0
j'ai un truc dans le genre:
<a href="<?echo "$PHP_SELF";?>?mode=formulaire&objet=types&action=modifier&num_enr=1" onclick="javascript:getElementById('ajouter').click();" >Type  </a>


mais ca ne me sauvegarde toujours pas mon formulaire (il ne se trouve pas dans la base).
Je ne suis pas sure que ce soit 'ajouter' qu'il faille mettre dans le getelement...

Ajouter correspond a :
echo '<p align=center><input type="submit" name="Submit" value="Ajouter" ></p>'."\n";

(il faut préciser qu'il se situe sur un autre fichier, en effet le cadre de mes formulaires sont construit par un meme fichier indépendant).

Une iddée sur le pourquoi du comment ca marche pas
0
euh... je ne peux pas voir ton code... ;p
0
Bon je sais pas ce qui c passé mon code donc est comme ca:

<a href="<?echo "$PHP_SELF";?>?mode=formulaire&objet=types&action=modifier&num_enr=1" onclick="javascript:getElementById('ajouter').click();" >Type : </a>

o passage c possible d'appeler une fonction php sur une action du type onclick??
0
J'ai du boulot, la, alors vite fait : non tu ne peux pas appeler de fonction php a partir de jscript, mais dans ton source tu peux n'ecrire qu'une fois une grosse partie de code qui seral a meme dans plusieurs page, en lecrivant dans une fonction. si tu enregistre ta fonction dans un fichier separé functions.php, tu l'inclus dans chaque fichier ou tu a besoin de t fonctions avec include(...) ;
ici ta fonction pourrai etre le traitement de ton premier formulaire si jai bien compris.

pour le reste je verrai plus tard, I have to work, i'm in a placement in Cardiff and I've a new stuff to do.
0
Re-
Bon alors je sais ce qu'il te manque pour le getElementBYId, c'est jsute que tu n'as pas attribué d'id a tes élements... tu les appelles par leur valeur --> completement impossible. Tu peux les appeller comme ca
document.nomDuForm.nomElement.click()
(ici pour ton bouton, le nom est Submit etnon ajouter
ou bien tu rajoute dans <input type="submit" ... id="ajouter">
et tu utilise
 getElementById('ajouter').click() pour simulerun click sur le bouton.
donc ton lien peu ressembler a ca :
<a href = "..." onclick= document.getElementById('idDuForm').action='url cible du form' (ou document.NameDuForm.action=); document.getElementById('ajouter').click(); ">

j'ai rajouté document. devant, mais je pense que ce n'est pas indispensable.
Is that ok ?
0
Re-
Bon alors je sais ce qu'il te manque pour le getElementBYId, c'est jsute que tu n'as pas attribué d'id a tes élements... tu les appelles par leur valeur --> completement impossible. Tu peux les appeller comme ca
document.nomDuForm.nomElement.click()
(ici pour ton bouton, le nom est Submit etnon ajouter
ou bien tu rajoute dans <input type="submit" ... id="ajouter">
et tu utilise
 getElementById('ajouter').click() pour simulerun click sur le bouton.
donc ton lien peu ressembler a ca :
a href = "..." onclick= document.getElementById('idDuForm').action='url cible du form' (ou document.NameDuForm.action=); document.getElementById('ajouter').click(); "

j'ai rajouté document. devant, mais je pense que ce n'est pas indispensable.
Is that ok ?
0
C'est agacant : voila la partie qui devrai etre entre balises code :


a href = "..." onclick= document.getElementById('idDuForm').action='url cible du form' (ou document.NameDuForm.action=); document.getElementById('ajouter').click(); "
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
1 juin 2005 à 13:21
Pensez à fermer vos balises de mise en forme lorsque vous postez ;)
0
Merci beaucoup ca fonctionne
0