11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,
voila j'ai un petit probleme avec un formulaire ..
J'aimerais à partir d'un lien pouvoir attribuer une valeur à un champ caché puis envoyer le formulaire avec cette nouvelle valeur ... J'ai donc fait appel a 2 fct qui sont supprimer() et sendForm() : supprimer() assigne la valeur puis retourne true pour envoyer le formulaire .. Le probleme est que la valeur recuperée sur la page cible est celle d'origine (soit : "aucune") alors que si je met un alert() dans la fct supprimer la valeur est bien assignée ...
enfin voila j'espere que vous avez compris mon probleme ..

Voici mon code :

Le code html du formulaire :
<form action="messagerie.php" method="post" name="sauvegarder_supprimer_message" id="sauvegarder_supprimer_message">

<input name="form_action" type="hidden" value="aucune">

<a href="javascript:sendForm();" onclick="return supprimer();">Supprimer</a>

</form>


Les fonctions js appelées :
function supprimer(){	
document.forms["sauvegarder_supprimer_message"].form_action.value = 'supprimer';
return true;
}

function sendForm() {
var frm;
frm = document.getElementById('sauvegarder_supprimer_message');
frm.submit();
}

Modifié par kvndevils (12 Sep 2006 - 19:30)
Bonjour
Je pense qu'il serai plus simple d'écrire ceci:
<a href="javascript:document.getElementByNames('form_action').value='supprimer';this.form.submit();">Supprimer</a>

et de supprimer les Fct js. Au moins on est sur que l'enchainement s'effectuera.
En effet je trouve ton raisonnement logique mais je viens d'essayer et lorsque je clique sur le lien rien ne se passe .. et tu sur dur this.form.submit ? le this designe koi ?

merci en tout cas pour ton aide
Une petite erreur de syntaxe c'est getElementsByName et non ce que j'ai écris. This représente le formulaire dans lequel se trouve le submit. Pour récupérer la valeur dans php:

if(isset($_POST['form_action']))
  {$form_action=$_POST['form_action'];}
  else
  {taratata;}
Erreur à propos du this : IL ne représente pas un élément de formulaire, this.form est donc indéfini.
Ici, this représente le lien, et un lien n'a pas de propriété form.