Bonjour � tous,
Voila j'expose mon probl�me.
j'ai deux fichier le premier est celui du js function serialize et unserialize.
ensuite j'ai un autre fichier js qui appel ma page en php pour r�cup�rer mon resultat serializ�
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 function serialize (txt) { switch(typeof(txt)){ case 'string': return 's:'+txt.length+':"'+txt+'";'; case 'number': if(txt>=0 && String(txt).indexOf('.') == -1 && txt < 65536) return 'i:'+txt+';'; return 'd:'+txt+';'; case 'boolean': return 'b:'+( (txt)?'1':'0' )+';'; case 'object': var i=0,k,ret=''; for(k in txt){ //alert(isNaN(k)); if(!isNaN(k)) k = Number(k); ret += serialize(k)+serialize(txt[k]); i++; } return 'a:'+i+':{'+ret+'}'; default: return 'N;'; alert('var undefined: '+typeof(txt));return undefined; } } function unserialize(txt){ var level=0,arrlen=new Array(),del=0,final=new Array(),key=new Array(),save=txt; if (!txt) return final; while(1){ switch(txt.substr(0,1)){ case 'N': del = 2; ret = null; break; case 'b': del = txt.indexOf(';')+1; ret = (txt.substring(2,del-1) == '1')?true:false; break; case 'i': del = txt.indexOf(';')+1; ret = Number(txt.substring(2,del-1)); break; case 'd': del = txt.indexOf(';')+1; ret = Number(txt.substring(2,del-1)); break; case 's': del = txt.substr(2,txt.substr(2).indexOf(':')); ret = txt.substr( 1+txt.indexOf('"'),del); del = txt.indexOf('"')+ 1 + ret.length + 2; break; case 'a': del = txt.indexOf(':{')+2; ret = new Array(); arrlen[level+1] = Number(txt.substring(txt.indexOf(':')+1, del-2))*2; break; case 'O': txt = txt.substr(2); var tmp = txt.indexOf(':"')+2; var nlen = Number(txt.substring(0, txt.indexOf(':'))); name = txt.substring(tmp, tmp+nlen ); //alert(name); txt = txt.substring(tmp+nlen+2); del = txt.indexOf(':{')+2; ret = new Object(); arrlen[level+1] = Number(txt.substring(0, del-2))*2; break; case '}': txt = txt.substr(1); if(arrlen[level] != 0){alert('var missed : '+save); return undefined;}; //alert(arrlen[level]); level--; continue; default: if(level==0) return final; alert('syntax invalid(1) : '+save+"\nat\n"+txt+"level is at "+level); return undefined; } if(arrlen[level]%2 == 0){ if(typeof(ret) == 'object'){alert('array index object no accepted : '+save);return undefined;} if(ret == undefined){alert('syntax invalid(2) : '+save);return undefined;} key[level] = ret; } else { var ev = ''; for(var i=1;i<=level;i++){ if(typeof(key[i]) == 'number'){ ev += '['+key[i]+']'; }else{ ev += '["'+key[i]+'"]'; } } if(ret==null){ret='';} // ajout de loïc guglielmino, pour corriger problème valeur null eval('final'+ev+'= ret;'); } arrlen[level]--;//alert(arrlen[level]-1); if(typeof(ret) == 'object') level++; txt = txt.substr(del); continue; } }
j'aimerais savoir comment je fait pour que mon resultat s'affiche
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 function afficher_fenetre_encherir(id_enchere, enchere_mini) { var model = getIdStd('enc_fenetre_encherir_contenu_model').innerHTML; model = model.replace(/#ID_ENCHERE#/g, id_enchere); model = model.replace(/#ENCHERE_MINI#/g, enchere_mini); model = model.replace(/#MODEL#/g, ""); getIdStd('enc_fenetre_encherir_contenu').innerHTML = model; getIdStd('enc_fenetre_encherir').style.display = 'block'; afficherFondPopupStd('enc_fond_popup',0); centrerPopupStd('enc_fenetre_encherir'); } function cacher_fenetre_encherir() { getIdStd('enc_fenetre_encherir_contenu').innerHTML = ''; getIdStd('enc_fenetre_encherir').style.display = 'none'; getIdStd('enc_fond_popup').style.display = 'none'; } /** * Affichage en savoir + */ function afficher_en_savoir_plus(elt) { getIdStd(elt).style.display = 'block'; afficherFondPopupStd('enc_fond_popup',0); centrerPopupStd(elt); } function cacher_en_savoir_plus(elt) { getIdStd(elt).style.display = 'none'; getIdStd('enc_fond_popup').style.display = 'none'; } /** * Affichage du compte à rebours pour les enchères */ function compte_a_rebours_enc(elt, time_id) { var time = "" + eval(time_id); // transformation en string if (time <= 0) { time = "Enchère<br/>Terminée"; } else { nb_heures = Math.floor(time/3600); nb_minutes = Math.floor((time - nb_heures*3600) / 60); nb_secondes = (time - nb_heures*3600) - (nb_minutes*60); if(nb_heures < 1 && nb_minutes < 1) { time = "Moins d'une<br/>minute"; } else { if(nb_heures<10) nb_heures = "0"+nb_heures; if(nb_minutes<10) nb_minutes = "0"+nb_minutes; if(nb_secondes<10) nb_secondes = "0"+nb_secondes; time = nb_heures+"h"+nb_minutes+"m"+nb_secondes+"s"; } } document.getElementById(elt).innerHTML=time; window[time_id] = eval(time_id)-1; // on diminue le timestamp } /** * Un joueur fait une demande pour enchérir */ function encherir_enc(id_enchere, enchere_mini) { var montant = document.enc_form_encherir.enchere_joueur.value; if( retour = file('boutique/boutique_encheres_actions.php?action=encherir&id='+id_enchere+'&montant='+montant+'&mini='+enchere_mini) ) { var arr = unserialize(retour); if(arr[0]==0) { getIdStd('enc_fenetre_encherir_contenu').innerHTML = arr[1]; } else { getIdStd('enc_message_retour').innerHTML = arr[1]; } } }
exemple de ligne de serialisation :
a:2:{i:0;i:96;i:1;s:31:"Vous n'avez pas assez de Points";}
j'aimerais afficher sur ma page enchere Vous n'avez pas assez de Points.
Merci pour votre aide et contribution
Partager