Bonjour à tous,

je ne sais pas si vous avez compris le titre, mais j'ai plusieurs problémes concernant les fonctions javascript appelé par AJAX. Aprés recherches, j'ai lu qu'une fonction JS ne puvait pas être executé si elle est dans un fichier ASP appelé en ASP.
J'ai donc utilisé cette méthode :
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
 
	if(param=="fleche"){
		var responseText = "afficheTout('cacheForm');";
	}else if(param!="aff"){
		var responseText = "rempliToutSeul('deuxieme');";
	}
	if(param=="aff"){
		var responseText = "rempliToutSeul('cacheForm');";
	}
	//alert(responseText);
	xmlhttp.open('POST',url,true);
	xmlhttp.onreadystatechange=function() {
    	if (xmlhttp.readyState==4) {
        	if(document.getElementById){
          		document.getElementById(id).innerHTML = xmlhttp.responseText;
				if(id=="champsCache"){
				var BaliseScript=document.createElement('script');
				BaliseScript.type='text/javascript' 
				BaliseScript.appendChild(document.createTextNode(responseText))
				document.body.appendChild(BaliseScript)
				}			
        	}
    	}
	}
Le probléme c'est que cela ne marche pas du tout sous IE (la fonction JS ne n'execute pas) mais sous FF ca marche.

Donc je continu ma prog sous FF en attendant de trouver la solution sous IE mais j'ai un autre soucis sous FF.

Je m'explique, je veut mettre a jour un formulaire a partir d'un autre, ca marche pour certains formulaire mais pas pour d'autre.
Voici le code:

=> httprequest (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
60
61
62
63
64
 
// function hhtprequest
function httprequest(id,url,param)
{
	var texte= '';
	try{	
		document.getElementById(id).innerHTML = ""; 
	}catch(e){
		alert(e);
	}
	//alert(id);
	//}
 
	var xmlhttp=false;
	try{
    	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
    	try{
        	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    	}catch(E){
        	xmlhttp = false;
    	}
	}
	if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
    	try{
        	xmlhttp = new XMLHttpRequest();
    	} catch (e){
        	xmlhttp = false;
    	}
	}
	if(!xmlhttp && window.createRequest){
    	try{
        	xmlhttp = window.createRequest();
    	} catch(E){
        	xmlhttp = false;
    	}
	}
	if(param=="fleche"){
		var responseText = "afficheTout('cacheForm');";
	}else if(param!="aff"){
		var responseText = "rempliToutSeul('deuxieme');";
	}
	if(param=="aff"){
		var responseText = "rempliToutSeul('cacheForm');";
	}
	//alert(responseText);
	xmlhttp.open('POST',url,true);
	xmlhttp.onreadystatechange=function() {
    	if (xmlhttp.readyState==4) {
        	if(document.getElementById){
          		document.getElementById(id).innerHTML = xmlhttp.responseText;
				if(id=="champsCache"){
				var BaliseScript=document.createElement('script');
				BaliseScript.type='text/javascript' 
				BaliseScript.appendChild(document.createTextNode(responseText))
				document.body.appendChild(BaliseScript)
				}			
        	}
    	}
	}
	xmlhttp.setRequestHeader('Content_type','application/x-www-form-urlencoded');
	var data = 'texte='+escape(texte);
	xmlhttp.send(data);
}
Ca marche mais je le mais quand même

=> Code de la div qui doit mettre à jour l'autre div, celui-ci aussi marche bien(se met bien a jour), je la met juste pour les id des input, form, etc...
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
 
<form action="#" method="post" id="deuxieme" style="display:none;">
		<input type="text" id="company" value="<%=company%>" />
		<input type="text" id="address1" value="<%=add1%>" />
		<input type="text" id="address2" value="<%=add2%>" />
		<input type="text" id="address3" value="<%=add3%>" />
		<input type="text" id="address4" value="<%=add4%>" />
		<input type="text" id="county" value="<%=county%>" />
		<input type="text" id="postcode" value="<%=post%>" />
		<input type="text" id="telephone" value="<%=tel%>" />
		<select id="contact">
	<%
	if rz2.eof then
		Response.write "<option value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
		Response.write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
		Response.write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>"
	end if
	while not rz2.EOF 	
		Response.write "<option value='"&rz2.fields("CONTACT")&"'>"&rz2.fields("CONTACT")&"</option>"
		rz2.movenext
	wend
	%>
		</select>
	</form>
=> ICI je met le code de la fonction javascript permettant de remplir le form (voir plus bas) avec les valeurs du formulaire ci-dessus)
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
 
// this function allows to empty a list with another
function rempliToutSeul(form){
	//alert(form);
	var un=document.getElementById('autreForm');
	var deux=document.getElementById(form);
	un.ville.value=deux.address4.value;
	un.compagnie.value=deux.company.value;
	un.codePostal.value=deux.postcode.value;
	un.telephone.value=deux.telephone.value;
 
	un.nomcontact.length=0;
	for(i=0;i<un.nomcontact.length;i++){
		un.nomcontact.options[i].value=null;
	}
		// 2 On la remplie avec les valeurs de la liste des contacts cachée
	for(i=0;i<deux.contact.length;i++){
		un.nomcontact.options[i]= new Option(deux.contact.options[i].text,deux.contact.options[i].value);	
	}	
	un.Pays.value=deux.county.value;
	un.adresse.value=deux.address1.value+" / "+deux.address2.value+" / "+deux.address3.value;
}

Et enfin voici le code du formulaire que je met a jour
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
 
<%
Response.charset="iso-8859-1"
Response.Write request.QueryString("valeur")
%>
	<form method="post" action="#" id="autreform" >
		<table>
			<tr>
			    <td>Numero <%=request.querystring("type")%><br /><input type="text" id="numclient" name="numclient" value=""  
				<% if request.querystring("type")="client" then %>			
				onkeyup="javascript:httprequest('champsCache','ASP/rempliDest.asp?type=<%=request.QueryString("type")%>&valeur='+this.value);"
				<% end if %>
				 /></td>
			    <td colspan="2">Nom du contact <br />
					<select id="nomcontact">
						<option value="">
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
						</option>	
					</select>
				</td>
			</tr>
			<tr>
				<td>Compagnie</td>
				<td colspan="2"><input type="text" id="compagnie" value="" size="45%"/></td>
			</tr>
			<tr>
				<td>Adresse</td>
				<td colspan="2">
				<textarea id="adresse" rows="2" cols="34"></textarea>
				<!-- <input type="text" id="adresse" value="" size="45%" />-->
				</td>
			</tr> 
			<tr>
				<td>Pays <br /><input type="text" id="Pays" value=""  /></td>
				<td>Ville <br /><input type="text" id="ville" value="" /></td>
				<td>Code Postal <br /><input type="text" id="codePostal" value="" /></td>
			</tr> 
			<tr>
				<td>Telephone</td>
				<td><input type="text" id="telephone" value="" /></td>
			</tr>
		</table>
	</form>
Ce code marche correctement sur un formulaire statique (tout le temps présent sur la page), mais pas dans mon cas, en effet, le formulaire est affiché via AJAX. Je rentre bien dans la fonction JS (un alert me le confirme), mais le formulaire ne se met pas à jour, et sous FIrebug, je n'ai aucune erreur.

JE SUIS PERDU, je pige rien

Merci d'avance