Envois de formulaire ajax

Résolu
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012
- 9 mars 2009 à 22:13
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012
- 10 mars 2009 à 15:56
bonjour,
voilà, j'aimerais modifier la fonction que je vous mets la dessous, de manière a pouvoir l'utiliser avec n'importe quel formulaire,
en précisant simplement l'id du formulaire dans l'appel de la fonction, et que la fonction prenne automatiquement tout les champs du formulaire.
mais, je ne m'en sors pas du tout cette fois ci,

si qqn peut m'aider :)

voici la fonction:
(il faudrait modifier la partie avec les "var" et la var data pour qu'automatiquement il y ait tout les champs du formulaire)

addoeuvre=function(){
    tinyMCE.triggerSave();
    var xhr_object = null;

    if(window.XMLHttpRequest) // Firefox
   xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
   xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    }
   
   
    var method   = "POST";
    var filename = "worker/addoeuvre.php";
   
    var ID = escape(document.getElementById('ID').value);
    var meta_key = escape(document.getElementById('meta_key').value);
    var meta_desc = escape(document.getElementById('meta_desc').value);
    var titre = escape(document.getElementById('ftitre').value);   
    var cathegorie = escape(document.getElementById('cathegorie').value);   
    var page = escape(document.getElementById('page').value);
    var imgs1 = escape(document.getElementById('imgs1').value);
    var imgs2 = escape(document.getElementById('imgs2').value);
    var imgs3 = escape(document.getElementById('imgs3').value);
    var imgb1 = escape(document.getElementById('imgb1').value);
    var imgb2 = escape(document.getElementById('imgb2').value);
    var imgb3 = escape(document.getElementById('imgb3').value);
    var description = escape(document.getElementById('description').value);
    var information = escape(document.getElementById('information').value);
    var infosearch = escape(document.getElementById('infosearch').value);
   
   
   
var data = null;

if(ID != "")
   data = "ID="+ID+"&meta_key="+meta_key+"&meta_desc="+meta_desc+"&titre="+titre+"&cathegorie="+cathegorie+"&page="+page+"&imgs1="+imgs1+"&imgs2="+imgs2+"&imgs3="+imgs3+"&imgb1="+imgb1+"&imgb2="+imgb2+"&imgb3="+imgb3+"&description="+description+"&information="+information+"&infosearch="+infosearch;

xhr_object.open(method, filename, true);

xhr_object.onreadystatechange = function() {
   if(xhr_object.readyState == 1) {
      var tmp = 'Transfert comencé';
      document.getElementById('respi').innerHTML=tmp;
   }
   if(xhr_object.readyState == 2) {
      var tmp = 'Données tranferées';
      document.getElementById('respi').innerHTML=tmp;
   }
   if(xhr_object.readyState == 3) {
      var tmp = 'Données reçues';
      document.getElementById('respi').innerHTML=tmp;
   }
   if(xhr_object.readyState == 4) {
      var tmp = xhr_object.responseText;
      document.getElementById('respi').innerHTML=tmp;
   }
}

if(method == "POST")
   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr_object.send(data);
}

HELP!, bonne soirée

Annadrill

7 réponses

PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
9 mars 2009 à 23:07
il te suffit de mettre dans un tableau et de faire un
join de celui ci avec un &
dans ton cas il est préférable de
récupérer les name
le même exemple revu

<html>
<head>

</head>

<form name= "F_MAIN">

  
  
</form>
<script
type="text/javascript">
var O_Form = document.forms.F_MAIN;
var Tab =
[]; // le tableau des data
//-- parcours des elements
for( var i =0; i <
O_Form.elements.length; i++){
  var Obj = O_Form.elements[i];
   //-- mise en tableau
  Tab.push( Obj.tagName
+' =' +Obj.value);
}
//-- concatenation du tableau
avec des &
var szData = Tab.join('&');
alert(
szData);
</script>

</html>
;O)
3
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
9 mars 2009 à 23:13
sorry il fallait lire
//-- mise en tableau

Tab.push( Obj.name +'=' +Obj.value);
;O)
3
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
9 mars 2009 à 22:27
Bonjour,
L'accés au éléments d'une FORM ce fait grace au parcours des elements
exemple  :
<html>
<head>
</head>


<form name="F_MAIN">
  
  <textarea value=""></textarea>
</form>

<script type="text/javascript">
var O_Form =
document.forms.F_MAIN;
for( var i=0; i < O_Form.elements.length; i++){

  alert( O_Form.elements[i].tagName);
}
</script>


</html>
;O)
0
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012

9 mars 2009 à 22:39
merci de cette réponse rapide !
j'avais essayé de faire un for
mais sans succès

question :
si je fais :
var O_Form = document.forms.F_MAIN;
for( var i=0; i < O_Form.elements.length; i++){ 
var data= O_Form.elements[i].tagName+"="+Form.elements[i].value);

je pourais reprendre la suite du code normal avec le data?
sauf que je me doute que ca va pas marché, parce qu'il faudrait encore le & entres les différents groupes..
je ne sais pas pourquoi, j'ai jamais réussi a comprendre ces i< dd; i++ ...

Annadrill
0

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

Posez votre question
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012

10 mars 2009 à 13:49
Ah, merci beaucoup !,

je vais pouvoir finir mon projet xD,
on verra si je m'en sors sans probleme ou si je reviendrais poser une question...
je m'en occupe cet aprèm. ;)

Annadrill
0
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012

10 mars 2009 à 14:16
CA MARCHE!!!!!!!!!!!!!

encore merci

Annadrill
0
Annadrill
Messages postés
149
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
22 novembre 2012

10 mars 2009 à 15:56
il me reste a faire un truc mais c'est en php,
( j'ai posté ma question ici : http://www.phpcs.com/forum/sujet-FOREACH-_POST-INSERT-MYSQL_1280942.aspx#1 )

pour faire a peu près la meme chose :
récupérer tous les post et inserer le tout dans une table mysql

si qqn peu m'aider aussi la dessus...

une fois que le tout sera fait, je ferai une source complete pour à qui cela pourrait servir :)

encore merci PetoleTeam !

Annadrill
0