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