IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Changement de contenu dans un div


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Par défaut [AJAX] Changement de contenu dans un div
    Bonjour,

    J'ai un souci que je ne comprend pas, en effet il s'agit d'un script déjà utilisé plusieurs fois mais il ne fonctionne pas dans le cas présent
    Lorsque j'appuie sur le bouton pour passer en mode modif il ne se passe rien...

    Le navigateur doit considèrer que la condition (XhrObj.readyState == 4 && (XhrObj.status == 200) n'est pas valide.
    RQ : Si je fais un alert dans la fonction, cela marche. Mais c'est pas génial

    ********* Fichier fonctions_js.inc.php *************
    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
    <script language="JavaScript">
    function sendData(param, page, nomdiv, mode)
    {
      if (document.all)
       { var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ; }
      else
       { var XhrObj = new XMLHttpRequest();}
    
      var content = document.getElementById(''+ nomdiv);	
      XhrObj.open("POST", page, true);
    
      XhrObj.onreadystatechange = function(){
      if ((XhrObj.readyState == 4) && (XhrObj.status == 200))
        { content.innerHTML = XhrObj.responseText ;}
      }
    
      //alert('');
    
       XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      XhrObj.send(param+'&mode='+mode);
    }
    
    function modifcree(numop)
    {
    	var inpUser = document.resultat;
    	inpUser.numcamp.value = numop;
    	inpUser.action ="campagne.php";
    
        document.forms['resultat'].submit();
    }
    </script>
    ********* Fichier listing.php *************
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    <?php
    require_once('./includes/fonctions_js.inc.php');
     
    session_start(); // on ouvre la session que l'on a précédemment crée.
    $valD = date('Y-m-j')."38r6t";
     
    if( empty($_COOKIE['duree']) )
      { echo "<body>";
    	echo "Erreur : vous devez vous identifier pour avoir accès à cette espace !"; // Message d'erreur
    	echo "<br><a href=\"index.php\">Se Connectez</a>";
    	echo "</body>";
    	exit(); // On arrête l'exécution du script (donc tout ce qui est en dessous ne sera pas affiché)
      }
    else
      {
    	if (!($_COOKIE['duree'] == $valD))
      	  { // On vérifie que la session est bien crée.
    		echo "Erreur : vous devez vous identifier pour avoir accès à cette espace !"; // Message d'erreur
    		echo "<br><a href=\"index.php\">Se Connectez</a>";
    		exit(); // On arrête l'exécution du script (donc tout ce qui est en dessous ne sera pas affiché)
      	  }
    	else
    	  {
    if ((eregi('msie', $_SERVER["HTTP_USER_AGENT"]) && !eregi('opera', $_SERVER["HTTP_USER_AGENT"])) || ($_SERVER["HTTP_USER_AGENT"]==""))
    {
    	$fichierCss="bdrview.css";
    }
    else
    {
    	$fichierCss="bdrviewNonIe.css";
    }
     
    echo "
    <html>
    <head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">
    <title>Interface de gestion des BDR</title>";
     
    echo "<link rel=\"stylesheet\" href=\"./includes/" . $fichierCss . "\" type=\"text/css\">";
    echo "</head>";
    ?>
    <body>
    <p>
    <a href="listing.php">Listing </a>
    </p>
    <center>
    <h1> Liste de Op&eacute;rations existantes</h1>
    <FORM name="resultat" ACTION="#" METHOD="POST">
    <div id="listing" style="visibility:visible" align="center">
    	<table border="0" cellpadding="0" cellspacing="0" class="fp_du_table toutautour">
    		<tr class="fp_du_header_2">
    		  <td class="bas droite" rowspan="2" valign="middle"> Nom sdd </td>
    		  <td class="bas droite" rowspan="2" valign="middle"> Palier(s) - Type </td>
    		  <td class="bas droite" colspan="2"> Prix</td>
    		  <td class="bas droite" rowspan="2" valign="middle"> Dates de d&eacute;part</td>
    		  <td class="bas droite" rowspan="2" valign="middle">Montant min.</td>
    		  <td class="bas droite" colspan="2"> Mode application</td>
    		  <td class="bas droite" rowspan="2" valign="middle"> Marque(s) </td>
    		  <td class="bas droite" rowspan="2" valign="middle"> Dates validit&eacute;</td>
    		  <td class="bas droite" rowspan="2" valign="middle"> Activation</td>
    		  <td class="bas" 	   rowspan="2" valign="middle" width="40"> &nbsp;</td>
    		</tr>
    		<tr class="fp_du_header_2">
    		  <td class="bas droite"> TTC</td>
    		  <td class="bas droite"> HT</td>
    		  <td class="bas droite"> R&eacute;d./pax </td>
    		  <td class="bas droite"> Tx/dossier</td>
    		</tr>
    		<tr class="fp_du_line_2" onmouseover="this.className='fp_du_lineover_2';" onmouseout="this.className='fp_du_line_2';">
    		  <td style="text-align:left;" class="bas droite"> NewsPaques </td>
    		  <td class="bas droite"> &nbsp; </td>
    		  <td class="bas droite"> <input type="radio" name="prix1" value="0" checked disabled="disabled"></td>
    		  <td class="bas droite"> <input type="radio" name="prix1" value="1" disabled="disabled"></td>
    		  <td class="bas droite"> &nbsp;</td>
    		  <td class="bas droite"> 800&euro;</td>
    		  <td class="bas droite"> <input type="radio" name="mod1" value="0" checked disabled="disabled"></td>
    		  <td class="bas droite"> <input type="radio" name="mod1" value="1" disabled="disabled"></td>
    		  <td class="bas droite" style="text-align:left;"> Promovacances <br>Partir Pas Cher <br> AB Cruise </td>
    		  <td class="bas droite"> 01/02/2009 - 01/06/2009</td>
    		  <td class="bas droite"> <input type="checkbox" name="acti" value="1" checked disabled="disabled"></td>
    		  <td class="bas">
    			<input class="none" type="image" src="./img/edit.png" border="0" onclick="javascript:sendData('id=1','liste_modif.php','listing','modifie');">
    			&nbsp;
    			<input class="none" type="image" src="./img/consult.png" border="0" onclick="javascript:modifcree(1)">
    		  </td>
    		</tr>
    		<tr class="fp_du_line_2" onmouseover="this.className='fp_du_lineover_2';" onmouseout="this.className='fp_du_line_2';">
    		  <td class="droite" style="text-align:left;"> Litiges </td>
    		  <td class="droite"> &nbsp; </td>
    		  <td class="droite"> <input type="radio" name="prix2" value="0" disabled="disabled"></td>
    		  <td class="droite"> <input type="radio" name="prix2" value="1" checked disabled="disabled"></td>
    		  <td class="droite"> 01/05/2009 - 01/06/2009</td>
    		  <td class="droite"> 750&euro;</td>
    		  <td class="droite"> <input type="radio" name="mod2" value="0" checked disabled="disabled"></td>
    		  <td class="droite"> <input type="radio" name="mod2" value="1" disabled="disabled"></td>
    		  <td class="droite" style="text-align:left;"> Promovacances <br>Partir Pas Cher</td>
    		  <td class="droite"> &nbsp;</td>
    		  <td class="droite"> <input type="checkbox" name="acti" value="1" checked disabled="disabled"></td>
    		  <td>
    			<input class="none" type="image" src="./img/edit.png" border="0" onclick="javascript:sendData('id=2','liste_modif.php','listing','modifie')">
    			&nbsp;
    			<input class="none" type="image" src="./img/consult.png" border="0" onclick="javascript:modifcree(2)">
    		  </td>
    		</tr>
    	</table>
    	<input type="hidden" name="mode" value="">
    	<input type="hidden" name="numcamp" value="">
    	<input type="hidden" name="action" value="">	
    </div>
    </form>
    <table border="0" cellpadding="0" cellspacing="0" class="fp_du_table toutautour">
    	<tr class="fp_du_line_1">
    	  <td colspan="12">Ajouter une nouvelle OP &nbsp; <input class="none" type="image" src="./img/add.png" border="0" onclick="javascript:modifcree(0)"></td>
    	</tr>
    </table>
    <p>
    <hr>
    </p>
    <li> <a href="integre.php">Int&eacute;gration en masse</a>
    <li> <a href="retrait.php">Retrait en masse</a>
    </center>
    <p>
    <hr>
    </p>
    <a href="logout.php">Sortir</a>
    </body>
    </html>
    <?php
    require_once('./includes/footer.php');
              }
      }
    ?>
    La page "liste_modif.php" contient le même tableau que précedemment mais la ligne sélectionnée aura sa ligne remplacée avec des input text ou des select selon le cas.

    Merci par avance de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function sendData(param, page, nomdiv, mode)
    {
      if (document.all)
       { var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ; }
      else
       { var XhrObj = new XMLHttpRequest();}
      XhrObj.open("POST", page, true);
      XhrObj.onreadystatechange = function(){
      if ((XhrObj.readyState == 4) && (XhrObj.status == 200))
        { document.getElementById(nomdiv).innerHTML = XhrObj.responseText ;}
      }
       XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      XhrObj.send(param+'&mode='+mode);
    }
    Tu dis nomdiv, c'est l'id du div que tu dois mettre en paramètre lequel tu l' appel avec getElementById.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Par défaut
    J'ai fait un essai
    - avec le code tel quel
    - en mettant en dur le nom du div
    mais cela ne résoud pas le problème.

    J'ai même enlevé la partie sur le contrôle de session mais rien n'y fait C'est trop biarre

    Question annexe : Pourquoi le fait de rajouter l'alert me permet d'avoir la page attendue ?


    Le souci doit venir de la page principale : j'ai pris un ancien fichier en gardant le fichier fonctions_js.inc.php cela marche. Bon je vais voir où est le souci dans la page d'appel

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Par défaut
    J'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="image" src="./img/edit.png" border="0" onclick="javascript:sendData('id=2','liste_modif.php','listop','modifie')">
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <button type="button" 
      onclick="sendData('id=2','liste_modif.php','listop','modifie')">
      <img src="./img/edit.png" border="0">
    </button>
    Et cela marche
    mais je ne vois pas pourquoi en mettant une image ça plante

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Changement de contenu dans une div.
    Par tinoudu01 dans le forum AJAX
    Réponses: 10
    Dernier message: 01/05/2009, 12h22
  2. Réponses: 10
    Dernier message: 19/11/2008, 09h09
  3. Compter le nombre d'image contenu dans un <div>
    Par denn dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/02/2006, 15h45
  4. [CSS] Décalage de contenu dans une div
    Par Onyx91 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/01/2006, 15h27
  5. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo