Bonjour,

j'ai écrit un fonction en JS pour faire un insert en base puis rediriger l'internaute vers une autre fenetre. pour ça j'utilise un XMLHTTPRequest qui fonctionne très bien sans la redirection. en effet quand je mets en place les condition de redirection il fait la redirection avant de faire la requete.

voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function insert(){
  var carte=getRadioVal('carte');
  var nom = document.getElementById('champsnom');
  var nom_value = nom.value;
  var prenom = document.getElementById('champsprenom');
  var prenom_value = prenom.value;
  var mail = document.getElementById('champsmail');
  var mail_value = mail.value;
  var type=getRadioVal('typo');
  if (type=='typpf'){
    var nommag=document.getElementById('searchp');    
  }
  if (type=='typst'){
    var nommag=document.getElementById('searchs');    
  }
  if (type=='typmg'){
    var nommag=document.getElementById('searchm');    
  }
  var mag_value=nommag.value; 
  db.transaction(
    function(t){
      t.executeSql("INSERT INTO gvappprod VALUES (?,?,?,?,?)", [nom_value,prenom_value,mail_value,mag_value,carte]);
          }
  );
  if (window.navigator.onLine){
  db.transaction(
    function(t){
      t.executeSql("SELECT nom AS nom, prenom AS prenom, mail AS mail, enseigne AS enseigne, choix AS choix FROM gvappprod",[],function(t,r){
        for (var i=0;i<r.rows.length;i++){
          nomloc=r.rows.item(i).nom;
          prenomloc=r.rows.item(i).prenom;
          mailloc=r.rows.item(i).mail;
          magloc=r.rows.item(i).enseigne;
          choixloc=r.rows.item(i).choix;
          //alert(mailloc);
          xhr = new XMLHttpRequest();
          xhr.open("GET", "insert.php?nom=" + nomloc + "&prenom=" + prenomloc + "&mail=" + mailloc + "&mag=" + magloc + "&choix=" + choixloc, true);
          alert ('on fait le send');
          xhr.send(null);
          }
        });
      }
  );
  vidange();
  }
  resetform();
  if (sessionStorage.getItem("page")=="1") {
    alert("onpart sur fin");
    //window.location.href='fin.html';
  } else {
    alert("onpart sur mobile");
    //window.location.href='trans.html';
  }
};
il fait "alert("onpart sur fin");" avant de faire "alert ('on fait le send');" du coup j'ai rien en base.

je ne vois pas d'erreur pourtant. je pensait que JS s'exécutait de haut en bas. si c'est une erreur d'accolade ou de point virgule, je ne vois pas ou elle est.

d'avance merci pour votre aide.