Bonjour é tous,

J'ai un petit problème dont voici l'explication.
Dans mon head j'ai ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$(document).ready(function() {
	$(".submit").click(function() {
		alert($(this).attr("id"));
	});
});
Après que ma page soit chargée, j'ai un formulaire qui va afficher les donnée de la base de donnée en utilisant ajax.
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
function getXhr(){
	//Création de l'objet XmlHttpRequest
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	}
	return xhr;
}
 
function get_batteries(action){
 
	//http://siddh.developpez.com/articles/ajax/
	var xhr = getXhr(); // INSTENTIEE IN js/getXhr.js
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 3){
			$('#inProgress').show();
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			$('#inProgress').hide();
			$('#firstRow').show();
			$('#firstRow').siblings().remove();
			$('#firstRow').after(leselect);
		}else{
		}
	}
 
	// Ici on va voir comment faire du post
	if(action=="check"){
		xhr.open("POST","/manager/templates/naoux/xmlhttprequest/check_battery.sql.php",true);
	}else if(action=="update"){
		xhr.open("POST","/manager/templates/naoux/xmlhttprequest/update_battery.sql.php",true);
	}
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
	// ne pas oublier de poster les arguments
	// ici, l'id de l'auteur
	marque = document.getElementById('fmarque').value;
	categorie = document.getElementById('fcategorie').value;
	carburant = document.getElementById('fcarburant').value;
 
	//alert(categorie);
 
	xhr.send("marque="+marque+"&categorie="+categorie+"&carburant="+carburant);		
}
Ca fonctionne bien.

Sauf que les données affichées sont entre les balises d'un formulaire.
Pour tester, j'ai mis un formulaire en dehor de mon div#firstRow et un autre, dedans.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<form>
<input class="submit" type="button" id="2" value="Sauve1" />
</form>
 
<form>
<div id="firstRow">
<!-- Ceci est le resultat de mon ajax getXhr() -->
<input class="submit" type="button" id="3" value="Sauve2" />
</div>
</form>

Donc en résumé,
quand je clique sur "Sauve1", il m'affiche toujours "2".
Apres que ma page soit chargée, après que j'ai cliquer sur le boutton qui va afficher les données dans div#firstRow et qu'ensuite, je clique sur "sauve2", là rien ne se passe

Je pense que c'est parce que ma page a deja chargé les éléments avant que le contenu qui se trouve à l'intérieur de div#firstRow ne soit chargé.

Comment puis-je alors faire en sorte que le contenu affiché grâce à AJAX soit considéré par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$(document).ready(function() {
	$(".submit").click(function() {
		alert($(this).attr("id"));
	});
});
Merci pour vos lumières!!