Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 15/03/2010, 22h57   #1
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
Par défaut push sur un tableau d'objets ?

Bonjour,

Afin d'améliorer les performances, je souhaite travailler sur un tableau qui est une copie d'une table sqlite (accessible avec javascript pour XUL uniquement) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
edTableFurl=edStatement("SELECT * FROM furl");
edTableFurl = {
	edit: function(num, id, subject, date, name, parameter, url, relation){
		edDump("edi num: "+ num);
		edTableFurl[num].id = id;
		edTableFurl[num].subject = subject;
		edTableFurl[num].name = name;
		edTableFurl[num].parameter = parameter;
		edTableFurl[num].url = url;
		edTableFurl[num].relation = relation;
		edTableFurl[num].note = note;
}
Cette mise en forme est-elle correcte ? Pourtant, lorsque je fais appel à ma fonction, j'obtiens une erreur :
Code :
1
2
edTableFurl.edit(num, id, subject, date, name, parameter, url, relation);
TypeError: edTableFurl[num] is undefined
Autre exemple, j'ai un tableau vide :

tab = [];

Je voudrais maintenant ajouter un élément, si bien que j'obtienne :

tab[0]= { "a", "b"};

Merci de l'aide,
Thibaud.

(Post mis à jour en fonction des remarques qui m'ont été faites ci-dessous).

Dernière modification par thibaud74 ; 16/03/2010 à 10h29.
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 23h05   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 12 879
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 12 879
Points : 30 140
Points : 30 140
Salut.

Il est bien heureusement impossible d'aller taper dans une base de données en JavaScript... ce serait une aberration en terme de sécurité.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 09h14   #3
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
J'utilise javascript avec XUL, les composants XPCOM permettent d'utiliser une base sqlite sans problèmes.
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h05   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 293
Points : 43 293
ne pas confondre array et json

Code :
1
2
3
4
5
6
7
8
 
var objet=new Array()
 
objet[0]=["a","b"]
alert(objet[0][0])
 
objet[1]={0:"a",1:"b"}
alert(objet[1][1])
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h18   #5
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
Merci SpaceFrog. Je n'ai pas étudié JSon, donc il faudrait que je le fasse pour comprendre ta première remarque.
Sinon, je crois comprendre que je dois utiliser un tableau d'objets. Mais je dois mal m'y prendre, car je ne modifie pas la longueur de mon tableau qui donne ici 'undefined' :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
num=0;
id="123";
subject="toto";
url="google";
edTableFurl = {};
edTableFurl[0] = {
	id: id,
	subject: subject,
	url: url,
};
alert("edit url: "+ url);
alert("AFTER: edTableFurl.length: " + edTableFurl.length);
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h32   #6
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
Bon, si je défini un objet puis je dis que c'est un tableau, ça marchera pas...
En remplaçant
edTableFurl = {};
par
edTableFurl = [];
... c'est beaucoup mieux !
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h35   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 293
Points : 43 293


ou plus proprement:

Code :
edTableFurl = new Array();
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h40   #8
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
...sauf que edTableFurl est initié comme un objet vide , donc est-ce possible de connaître la longueur d'un objet d'objets ?
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 10h48   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 293
Points : 43 293
A part un petit souci de confusion dasn les variables et une , en trop à la fin ...
tu y étais presque
Code :
1
2
3
4
5
6
7
8
9
10
11
mynum=0;
myid="123";
mysubject="toto";
myurl="google";
edTableFurl = [];
edTableFurl[0] = { id: myid,
                   subject: mysubject,
					  url: myurl
					  };
alert("edit url: "+ myurl);
alert("AFTER: edTableFurl.length: " + edTableFurl.length);
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2010, 11h58   #10
Invité régulier
 
Inscription : mars 2008
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 66
Points : 9
Points : 9
Ça a l'air d'être bon maintenant, merci !
thibaud74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 16h20.


 
 
 
 
Partenaires

Hébergement Web