Probleme envoie formulaire dans div ajax

Résolu/Fermé
mrtechno01 - 10 juin 2009 à 07:45
 Bertrand_O - 27 janv. 2013 à 07:43
Bonjour,

Etant en train de faire mon panel de gestion de mon site, je me trouve confronté a un problème concernant l'envoie de formulaire membre dans un div.

J'explique plus en détails la situation :

J'appelle dans mon div (gestion_panel) a l'aide d'une fonction ajax, un page php qui contient un formulaire de modifications d'informations d'un membre, mais la je me trouve bloqué car je souhaiterai que ce soit la même page php appelé qui contrôle et enregistre les informations modifiées dans le formulaire.

Je précise que le lien qui appel la page du formulaire dans mon div (gestion_panel) est sous la forme : page_div('formulaire.php?membre_id=123&admin=123&id=12345','gestion_panel');

voici ce que j'ai essayé :

1. test 1 qui ne fonctionne pas :
<form id="form_membre" name="form_membre" method="post" action="page_div('formulaire.php?membre_id=123&admin=123&id=12345','gestion_panel')">
...
</form>

2. test 2 qui ne fonctionne pas :
<form id="form_membre" name="form_membre" method="post" onsubmit="page_div('formulaire.php?membre_id=123&admin=123&id=12345','gestion_panel')">
...
</form>

Est ce que quelqu'un aurai une solution a mon problème ça serai super sympa car il ne me reste que ce problème la pour finaliser mon panel de gestion de mon site.

4 réponses

C'est bon j'ai résolu mon problème grasse a une autre fonction ajax qui prend en compte les post.

Voici ce code qui pourrai vous aider :

<script type="text/javascript">
function getFormData(form)
{
var data1 = "";
var form = document.getElementById(form);
var elements = form.elements;
for(var i=0; i<form.length; i++)
{
data1 += elements[i].name + "=" +escape(elements[i].value);
if((i+1)<form.length)
{
data1+="&";
}
}
return data1;
}
function ajax(fichier, div, method, form)
{
var xhr=null;
var data="null";
if(form!="null")
{
if(method=="GET")
{
data=form;
method="POST";
}
else
{
data = getFormData(form);
}
}
// détection du navigateur pour la création de l'objet XMLHttpRequest (soit l'acronyme xhr)
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open( method, fichier, false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
if (document.getElementById)
{
document.getElementById(div).innerHTML=xhr.responseText;
}
else
{
if (document.layers)
{
document.div.innerHTML=xhr.responseText;
}
else
{
document.all.div.innerHTML=xhr.responseText;
}
}
}
</script>
2
Bonjour,

Merci beaucoup !

J'ai utilisé votre code qui m'a tiré d'une situation bloquée depuis plusieurs jours et je vous en remercie beaucoup.
J'avais besoin de traiter le contenu d'un formulaire et de rediriger la réponse dans la div d'origine.
Parmi des dizaines de recherches c'est votre programme simple mais efficace qui m'a permis d'avancer.
Par contre j'ai du le passer on mode asynchrone pour que ça marche correctement.

Enfin j'ai une dernière difficulté que vous avez peut-être également rencontrée :
après avoir réaffiché la réponse au questionnaire, il arrive qu'elle soit effacée par un rafraîchissement intempestif de la popup dans laquelle est située la div.

Cela ressemble à une propagation d'événement mais je n'ai pas réussi à faire fonctionner "stopbubbling".

Merci encore.

Bien cordialement,
Bertrand.
0
un petit up car pour le moment je peux riens faire de plus
-1
Bon petite news,

J'ai réussi a envoyer le formulaire dans la div voulu mais le problème c'est que j'arrive pas a récupérer les informations saisies.

voici du coup ce qu'ai j'ai mis pour le faire :

<form id="form_membre" name="form_membre" method="post" action="javascript:page_div('formulaire.php?membre_id=123&admin=123&id=12345','gestion_panel')">
...
</form>

merci de m'aider pour récupérer les $_post['']
-1