Envois de formulaire ajax [Résolu]

Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention - 9 mars 2009 à 22:13 - Dernière réponse : Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 9 mars 2009 à 23:07
3
Merci
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)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de PetoleTeam
Meilleure réponse
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 9 mars 2009 à 23:13
3
Merci
sorry il fallait lire
//-- mise en tableau

Tab.push( Obj.name +'=' +Obj.value);
;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de PetoleTeam
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 9 mars 2009 à 22:27
0
Merci
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)
Commenter la réponse de PetoleTeam
Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention - 9 mars 2009 à 22:39
0
Merci
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
Commenter la réponse de Annadrill
Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention - 10 mars 2009 à 13:49
0
Merci
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
Commenter la réponse de Annadrill
Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention - 10 mars 2009 à 14:16
0
Merci
CA MARCHE!!!!!!!!!!!!!

encore merci

Annadrill
Commenter la réponse de Annadrill
Annadrill 149 Messages postés mercredi 9 mai 2007Date d'inscription 22 novembre 2012 Dernière intervention - 10 mars 2009 à 15:56
0
Merci
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
Commenter la réponse de Annadrill

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.