Problème de compteur Javascript

Fermé
lady yvi Messages postés 3 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 4 juin 2009 - 2 juin 2009 à 00:30
Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 - 2 juin 2009 à 14:05
Bonjour,

Bon par ou commencer...heu..c'est du code de débutant.

Je n'y connais rien en Ajax,javascript un tout petit peu,php je me débrouille et html ça va.

Si quelqu'un pouvais me dire si le code est correct se serai gentil.

Il y a 2 code Php,un code Javascript contenant de l'Ajax et un code Html.

Premier code Php, dont je me sert en Ajax pour appliquer mon Javascript:
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
 
mysql_connect('localhost','root','');
    mysql_select_db('garden');
    $acteur = "SELECT *
               FROM acteur
               ORDER BY id_acteur";
    $result_acteur = mysql_query ($acteur);
    while($afficher_acteur = mysql_fetch_array($result_acteur))
      {
      
          echo $afficher_acteur['id_acteur'] . "." . $afficher_acteur['nom_acteur'] . "|";
      
      }
 
?>


Voici le code Javascript contenant de l'Ajax :

<script type="text/javascript">          
           function submitForm()
           {   
          if(window.XMLHttpRequest)
             { 
            req = new XMLHttpRequest();
             } 
         else if (window.ActiveXObject)
           {
               req  = new ActiveXObject(Microsoft.XMLHTTP);
             }
        req.onreadystatechange = function()
           { 
            if(req.readyState == 4 && req.status == 200)
              {
                strOpt = req.responseText;
                }
                  
           } 
         req.open("GET", "test.php", true); 
         req.send(null);
           return strOpt; 
     }
      
      var compteur = 0;
      function ajouter()
          {
             
             var conteneur  = document.getElementById('fichiers');
           
 
            var undiv      = document.createElement('div');
            var check      = document.createElement('input');
            var select     = document.createElement('select');
            
            tmpOpt = submitForm().split('|');
            nbOpt = tmpOpt.length - 1;
            for(var i=0;i<nbOpt;i++)
               {
                  realOpt = tmpOpt[i].split('.'); 
                  var newOption=document.createElement('option'); 
                  newOption.value=realOpt[0]; 
                  newOption.innerHTML=realOpt[1]; 
                  select.appendChild(newOption); 
               }
            //var newOption  =document.createElement('option');
            //var newOption1  =document.createElement('option');
            //var newOption2  =document.createElement('option');
            
            
            select.name = 'acteur[]';
            check.type  = 'checkbox';
 
               // newOption.value=0;
               // newOption.innerHTML="Sélectionnez";
                
 
            // --- Option 2   
                
               // newOption1.value="valeur_1";
               // newOption1.innerHTML="option_1";
                
 
            // --- Option 3   
                
               // newOption2.value="valeur_2";
               // newOption2.innerHTML="option_2";
                
            
           
            check.type  = 'checkbox';
           
             
              check.onclick = function()
              {             
                compteur--;
                lediv      = this.parentNode;             
                lefieldset  = lediv.parentNode;             
                lefieldset.removeChild(lediv);
                
            }
            
            undiv.appendChild(select);
 
            //select.appendChild(newOption);
            //select.appendChild(newOption1);
            //select.appendChild(newOption2);
            undiv.appendChild(check);
            undiv.appendChild(document.createTextNode("Enlever"));
 
            conteneur.appendChild(undiv);
            compteur++;
            document.forms["formulaire"].elements['cache'].value=compteur;
            
        }
 
</script>
 


code Html:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
      <title>ajout d'acteur</title>
      
 
 
  </head>
  <body onload="submitForm()">
 
      <form name="formulaire" action='traitement.php' method='post'>
      <div id="ajout_acteur">
        <span id='fichiers'>
            <p>Acteur jouant dans se film :</p>
            <input type='button' value='Ajouter un acteur' onclick='ajouter()' /><br />
        </span>
      <input type="text" name="cache" id="cache" />
      <input type='submit' value='enregistrer'/>
      </div>
      </form>
      
  </body>
</html>
 


Deuxième code Php:
<?php
 
  mysql_connect('localhost','root','');
  mysql_select_db('cinema');
  
echo $_POST['cache'].'<br />';
 
for($j = 0; $j < $_POST['cache']; $j++)
{
  $query = "INSERT 
            INTO test
            VALUES('','".$_POST['acteur'][$j]."')";
echo $query.'<br />';
    //mysql_query($query);
}
?>
 


Si quelqu'un veux le tester pour me dire ce qu'il en penses.

Le premier code Php ,c'est une page test.php.
Le code Javascript ,soit vous le mettez dans le header, soit dans un fichier JS à part.
Le code Html, c'est une page (X)html codée en ISO-8859-1.
Le deuxième code Php, c'est une page traitement.php.

En fait,j'ai un problème dans mon code Javascript.
Le problème se situe au niveau de ma variable compteur.
Lorsque je clique sur le bouton "ajouter un acteur" ma variable s'incrémente de 1.

Quand je clique sur la case à cochée normalement ma variable se décrémente de 1 et cela ne le fait pas.
J'ai retourné le problème dans tous les sens.
J'ai testé return mais aucun résultats.

Je suis perdue.

Si quelqu'un pouvais m'éclairer se serait vraiment gentil.
Merci.
Yvi.
A voir également:

1 réponse

Archeus01 Messages postés 1567 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 448
2 juin 2009 à 14:05
Avant même te tester, après un
mysql_connect il faut un mysql_close...
-1