Bonjour,
Je me suis mis au dev web il n'y a pas si longtemps, je suis en train de faire une application web en php, js, ajax, mysql. Mon niveau en HTML CSS est plutot bon, php ca va, et le reste tout juste débutant.
Dans une des parties du projet, j'affiche le contenu de ma BDD dans un tableau HTML, et j'ai trouvé ce tuto qui me permet de faire ce dont j'ai besoin:
http://olance.developpez.com/article...cation-inline/

Permettre de modifier directement les données affichées dans ce tableau: en double-cliquant dans la case correspondante, un champ texte apparait à la place de la cellule du tableau, on écrit une nouvelle valeur et en appuyant sur ok ou quittant la cellule, cela enregistre ce nouveau champ sans recharger la page.

Résultat du tuto ici: http://olance.developpez.com/article...emple/classes/

Le problême est que cela ne marche pas...même pas la partie changement en input quand on double clique dessus, c'est comme si je n'avais pas de js du tout. Et je ne comprend pas pourquoi, et ou peut se trouver le pb...
Je bloque dessus depuis un moment. Et je n'avance pas.

Maintenant, j'ai 2 fichiers: 1php, 1js:
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
<?php session_start() ;  ?>
<!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" >
   <head>
       <title>Ajout de groupe</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="mod_pole.css" />
   	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="../banniere/banniere.css" />
	   <script type="text/javascript" src="inlinemod.js"></script>
 
   </head>
   <body>
 
    <?php
  if (!isset($_SESSION['pseudo']))       //session ouverte ?
  {
        header('Location: '.get_cfg_var("URL_HTTP")."/GDflux/index.php?erreur=authentification");
                }
include("../banniere/banniere.php"); 
                          
                 ?>
 
 
	<?php   
        $host = get_cfg_var("DBHost"); 
        $user = get_cfg_var("DBUserW"); 
        $pass = get_cfg_var("DBPwdW");                      
        $bdd = get_cfg_var("DBName"); 
 
      
        @mysql_connect($host,$user,$pass)                        l
    or die("Impossible de se connecter au serveur");
        @mysql_select_db("$bdd")                                   // sélection 
    or die("Impossible de se connecter à la base de données");
 
        $requete = "SELECT * FROM --BDD--";         
                
                try                                                // récupération 
                {
                        $result = mysql_query($requete);        
                }
                catch (Exception $e)
                {
                        die('Erreur : ' . $e->getMessage());
                }?>
 
 
 
 
<div id="ecran">
    <table id="tab_equipe"BORDER="1" ALIGN="CENTER" CELLPADDING="10" CELLSPACING="1">
	<caption>Modifier Pole</caption>
        <thead><tr>
            <th>Id</th>
            <th>Nom</th>
			</tr></thead>
 
        <?php
        while($user = mysql_fetch_assoc($result))
        {
        ?>
            <tbody><tr>
                <td class="cellule" ondblclick="inlineMod(<?php echo $user['id']; ?>, this, 'nom', 'nombre')">
                    <?php echo $user['id']; ?>
                </td>
 
                <td class="cellule" ondblclick="inlineMod(<?php echo $user['id']; ?>, this, 'prenom', 'texte')">
                    <?php echo $user['nom']; ?>
                </td>
				</tr></tbody>
        <?php
        }
        ?>
    </table>
	</div>
 
   </body>
</html>
Et le fichier js, que j'ai recopié du tuto décrit mais j'ai compris 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
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
 
//On ne pourra éditer qu'une valeur à la fois
var editionEnCours = false;
 
//variable évitant une seconde sauvegarde lors de la suppression de l'input
var sauve = false;
 
//Fonction de modification inline de l'élément double-cliqué
function inlineMod(id, obj, nomValeur, type)
{
	if(editionEnCours)
	{
		return false;
	}
	else
	{
		editionEnCours = true;
		sauve = false;
	}
 
	//Objet servant à l'édition de la valeur dans la page
	var input = null;
 
	//On crée un composant différent selon le type de la valeur à modifier
	switch(type)
	{
		//Valeur de type texte ou nombre
		case "texte":
		case "nombre":
			input = document.createElement("input");
			break;
 
		//Valeur de type texte multilignes
		case  "texte-multi":
			input = document.createElement("textarea");
			break;
	}
 
	//Assignation de la valeur
	if (obj.innerText)
		input.value = obj.innerText;
	else
		input.value = obj.textContent;
 
	input.value = trim(input.value);
 
	//On lui donne une taille un peu plus large que le texte à modifier
	input.style.width  = getTextWidth(input.value) + 30 + "px";
 
	//Remplacement du texte par notre objet input
	obj.replaceChild(input, obj.firstChild);
 
	//On donne le focus à l'input et on sélectionne le texte qu'il contient
	input.focus();
	input.select();
 
	//Assignation des deux événements qui déclencheront la sauvegarde de la valeur
 
	//Sortie de l'input
	input.onblur = function sortir()
	{
		sauverMod(id, obj, nomValeur, input.value, type);
		delete input;
	};
 
	//Appui sur la touche Entrée
	input.onkeydown = function keyDown(event)
	{
        if (!event&&window.event)
        {
            event = window.event;
        }
		if(getKeyCode(event) == 13)
        {
			sauverMod(id, obj, nomValeur, input.value, type);
			delete input;
		}
	};
}
 
 
 
//Fonction renvoyant le code de la touche appuyée lors d'un événement clavier
function getKeyCode(evenement)
{
    for (prop in evenement)
    {
        if(prop == 'which')
        {
            return evenement.which;
        }
    }
 
    return evenement.keyCode;
}
 
function getTextWidth(texte)
{
	//Valeur par défaut : 150 pixels
	var largeur = 150;
 
	if(trim(texte) == "")
	{
		return largeur;
	}
 
	//Création d'un span caché que l'on "mesurera"
	var span = document.createElement("span");
	span.style.visibility = "hidden";
	span.style.position = "absolute";
 
	//Ajout du texte dans le span puis du span dans le corps de la page
	span.appendChild(document.createTextNode(texte));
	document.getElementsByTagName("body")[0].appendChild(span);
 
	//Largeur du texte
	largeur = span.offsetWidth;
 
	//Suppression du span
	document.getElementsByTagName("body")[0].removeChild(span);
	span = null;
 
	return largeur;
}
Des idées ???