TRANSFORMER UN TABLEAU JAVASCRIPT EN UN TABLEAU HTML

cs_vincen Messages postés 2 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 23 septembre 2008 - 23 sept. 2008 à 18:14
gvolluz Messages postés 1 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 14 février 2012 - 14 févr. 2012 à 09:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43864-transformer-un-tableau-javascript-en-un-tableau-html

gvolluz Messages postés 1 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 14 février 2012
14 févr. 2012 à 09:26
Bonjour,
tout d'abord merci pour ce code, étant plus habitué aux langages impératifs(ASP,Pascal et tout le bordel) cela m'avance beaucoup^^

mais je me demandais, c'est plutôt une question sur le java script, mais serait-il possible de créer un tableau de taille définie par l'utilisateur ?

je pensais à cela : mais il ne s'affiche pas
NbLigne = prompt("Entrez le nombre de lignes : ");
NbColonne = prompt("Entrez le nombre de colonnes : ");
var tabtab = new Array(NbLigne ,NbColonne );
var obj=document.getElementById('grid');
obj.appendChild(CreateTableArray(tabtab));

et tant que j'y suis je ne me gêne pas, mettre un textarea dans chaque cellule du tableau, imaginable ? possible ?

Merci d'avance de votre temps,

Cordialement, Guy
xzonz Messages postés 103 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022
12 oct. 2011 à 19:39
salut :-)

cela m'a l'air super pratique en revanche je n'arrive pas l'utiliser.

j'aurais voulu savoir si c'est possible de passer un array javascript unidimensionnel tout en gardant la possibilité
de pouvoir mettre le nombre de lignes et colonnes que l'on veut.

voila le bout de code ou je charge le array que j'affiche dans un popup (il contient des liens d'images pour faire une galerie), ca fonctionne !

la ou je bloque c'est pour passer le tableau dans la fonction
et l'afficher dans le popup (pas besoin des entêtes)
un tableau de dix colonnes et x lignes (dépend du nombre d'images)

un petit exemple sous forme de code serait le bienvenu car
la je galère vraiment ...si tu peux m'aider ?

Merci beaucoup

F

//--------------------------------------------------------------------------
// génération de la galerie dans un popup
$('a.galerie').click(function(e){
var ell= e.target||event.srcElement;
divchoisi="#"+"div"+ell.id.substr(4);
var tab=new Array()
$(divchoisi + ".stylediv a").each(function() {
tab.push('['+$(this).attr('href')+' '+''+']')
});
w=open("",'popup','width=800,height=400,toolbar=yes,scrollbars=yes,resizable=yes,');
w.document.write('

');
w.document.write('
');
w.document.write(tab);
w.document.write('
');
w.document.write("");
w.document.close();
});
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
9 nov. 2009 à 21:35
Salut ;)
Tout ça est encore en test ;)
c'est vrai que les moches boutons bugués vont disparaitrent pour un meilleur design fonctionnel à 100%.
Mais le principe est là ;)

tiends, voila le code pour faire ce que tu a vu :

Le code HTML et JS :







// function CreateNewGrid(idgrid,divparent,tabtab)
var nbdiv=0;
var page=new Array();
var tabtab= "";
var nbwin=0

function Appel_Ajax(xpage) {
var param="page="+xpage;
new Ajax_request('listindividu.php',{method:'post',params:param,onSuccess:succAjax,onError:ErrorAjax,async:false});
}

function ErrorAjax(xhr) {
alert('error : status =' +xhr.status);
}

function succAjax(xhr) {
tabtab=xhr.responseText
}

function Eventbf(mydiv){
page[mydiv]=1;
Appel_Ajax(page[mydiv]);
RefreshGrid(mydiv,tabtab);
}

function Eventbp(mydiv){
page[mydiv]--;
Appel_Ajax(page[mydiv]);
RefreshGrid(mydiv,tabtab);
}

function Eventbn(mydiv){
page[mydiv]++;
Appel_Ajax(page[mydiv]);
RefreshGrid(mydiv,tabtab);
}

function Eventbl(mydiv){
page[mydiv]=-1;
Appel_Ajax(page[mydiv]);
RefreshGrid(mydiv,tabtab);
}

function ReturnTGrid(dparent){
var xdiv= 'mygrid' + ++nbdiv;
page[xdiv]=1;
Appel_Ajax(page[xdiv]);
var typegrid= { idgrid : xdiv , divparent : dparent ,
tabldata : tabtab,
url : 'mapage.php',
eventbf : function(){Eventbf(xdiv)},
eventbp : function(){Eventbp(xdiv)},
eventbn : function(){Eventbn(xdiv)},
eventbl : function(){Eventbl(xdiv)},
typeobj : "['label','label','label','label','label']",
gwith : 500
};
return typegrid;
}

function CreateNewWin(){
var windiv = "windiv" + ++nbwin;
new popUp(50 , 100 , 510 , 310 , windiv , "" , "white" , "black" , "10pt sans-serif" , "Fenetre test" , "#0F72BB" , "white" , "lightgrey", "#6DBAF3" , "black" , true , true , true , true , false , false , 'min.gif' , 'max.gif' , 'close.gif' , 'resize.gif');
var xx=ReturnTGrid(windiv+'_c');
CreateNewGrid(xx);
}




























et le code PHP




Voilou, faut pas grand chose pour faire du booooooo :D

a++



pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
9 nov. 2009 à 21:13
si, en fait c'est si on dépasse les bornes que ça se perd les pédales. genre si je clic sur >> et puis > ou bien << et <
les fenêtres c'est fun aussi ^^
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
9 nov. 2009 à 21:12
c'est énorme ! je suis fan du javascript en fait :p

par contre c'est moi ou le bouton < ne marche pas ?
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
8 nov. 2009 à 20:42
Salut ;)
Voila, j'ai transformé ton pti bou de code en grid :D
Je peaufine un peu tout ça, et je le post ;)
en attendant, regardes un peu ce que ça donne, et donnes moi ton avis ;)

http://safbiturbo.free.fr/grid/test3.html

tu peu ouvrir autant de grid ou de fenêtres que tu veux.
Pour info, la table comporte 1285 enregistrements.

@+
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
8 nov. 2009 à 20:36
Salut ;)
Voila, j'ai transformé ton pti bou de code en grid :D
Je peaufine un peu tout ça, et je le post ;)
en attendant, regardes un peu ce que ça donne, et donnes moi ton avis ;)

http://safbiturbo.free.fr/grid/test3.html

tu peu ouvrir autant de grid ou de fenêtres que tu veux.
Pour info, la table comporte 1285 enregistrements.

@+
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
28 oct. 2009 à 21:15
Salut,
Vu que je vais utiliser ce bout de code, je ne peut que bien noter ;)
@+
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
28 oct. 2009 à 20:26
je t'en prie fais toi plaisir ;) j'avoue je connais pas du tout Json j'aurais pas trouvé.

pour la réactivité j'ai aucun mérite, je reçois un mail à chaque fois qu'on me met un commentaire. Halala, ça vaut bien une petite note tout ça non? :D
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
28 oct. 2009 à 13:11
Salut,
Merci mille fois ;)
Réactivité digne d'une société de sevice performante ;):D

Mais, ca ne me satisfait pas :/

J'ai l'habitude de travailler en notation JSON, qui est bien plus lisible ;).
Et de plus, je suis en train d'écrire un frameworck et les appels au serveur me renvoi du JSON.

Donc, il y a juste une petite modif a faire à ta fonction pour qu'elle fonctionne avec la notation JSON.

Juste une ligne (la premiere) à ajouter a ta fonction.

// variable en notation JSON que me renvoi le serveur
var tabtab="[['ID','Nom','Prénom','Note'],['1','Dupont','Pierre','10'],['2','Dupuit','Francois','400'],['3','Durant','Christopha','500']]";


function CreateTableArray(val) {
if(typeof val=='string'){val=eval('('+val+')');}
// ............................. //
// la suite et on ne change rien //
// ............................. //
}

Et voilou, comme ca, ca fontionne et tout le monde est content.

Merci de m'accorder la permission d'utiliser tes quelques lignes de code dans mon frameworck ;)

@+
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
27 oct. 2009 à 22:40
erreur de débutant :p ... non j'avoue, j'ai pas vu de suite à la lecture, j'ai du le tester chez moi:

c'est la déclaration de ton tableau qui est mal faite, il faut utiliser new Array (et avec la majuscule à Array s'il vous plait!)
var tabtab = new Array(new Array('ID','Name','autre1','autre2'), new Array('1','2','3','4'));
cs_pierrot01 Messages postés 13 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 9 novembre 2009
27 oct. 2009 à 22:25
Salut,
Je ne voudrais surtout pas avoir l'air bête, mais je n'arrive pas a le faire fonctionner.

Partie javascript :

function CreateNewTab(){
var tabtab=['ID','Name','autre1','autre2']['1','2','3','4'];
var obj=document.getElementById('grid2');
obj.appendChild(CreateTableArray(tabtab));
}
Partie HTML :

Et il ne se passe rien :/

@+
cs_vincen Messages postés 2 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 23 septembre 2008
23 sept. 2008 à 18:14
Félicitations,

C'est génial de simplicité !!

J'ai cherché sur le net des idées, des solutions concernant les tables, mais c'est toujours très sophistiqué et plein d'options inutiles, de skins... qu'on passe un temps fou à déactiver. Alors que là c'est beau, c'est simple et rapide.

Vive le javascript.

Vincent
Rejoignez-nous