Je sais que cette question est ancienne, mais voici comment je l'ai fait sur ASP.Net (C#) en utilisant jQuery.
//Create the form in a jQuery object
$("<form action='/FormPostTo.aspx' method='post' target='nameofframe'></form>")
//Get the value from the asp textbox with the ID txtBox1 and POST it as b1
.append($("<input type='hidden' name='b1' />").attr('value',$('#<%= txtBox1.ClientID %>').val()))
//Get the value from the asp textbox with the ID txtBox2 and POST it as b2
.append($("<input type='hidden' name='b2' />").attr('value',$('#<%= txtBox2.ClientID %>').val()))
//Add the form to the body tag
.appendTo('body')
//Submit the form which posts the variables into the iframe
.submit()
//Remove the form from the DOM (so subsequent requests won't keep expanding the DOM)
.remove();
Juste un petit mot: je l'ai fait les balises d'entrée comme ça plutôt que de les concaténer, dans le cas où la valeur de la zone de texte avait une citation ('
) en elle. Si vous l'avez concaténé, cela gâcherait le code HTML et il ne serait pas analysé correctement.
En outre, cela supprime le formulaire du DOM après qu'il a été utilisé de sorte que vous ne remplissez pas le DOM avec des éléments de formulaire si vous postez plusieurs fois sur le iFrame.
Une légère modification que vous pourriez apporter serait de créer l'élément de formulaire s'il n'existe pas et de le référencer par ID s'il existe déjà et de le réutiliser.
Je ne me soucie pas vraiment ajax. Tout ce que je veux, c'est soumettre un post à un iframe depuis l'extérieur sans que l'utilisateur doive cliquer sur un bouton submit. Je ne peux pas les passer dans l'iframe en utilisant le src car ce ne sont pas les paramètres querystring qu'il veut. La balise