Envoyer des données javascript à un serveur

Résolu
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 20 déc. 2006 à 10:40
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 20 déc. 2006 à 13:18
Bonjour,


Je débute un peu en développement web, et je suis bloqué (normal...).
Reprenez moi si je me trompe, ou si je ne suis pas clair.
 Pour commencer, si j'ai bien compris :
- Le code php est exécuté par le serveur au moment du chargement de la page, et les variables sont stockées sur le serveur.
- Pour modifier cette page, je dois faire appel à des fonctions JavaScript qui sont éxécutées par le client, et les variables JS sont stockées sur le poste client.


Mon problème : Je voudrais envoyer des données contenu dans des variables JS au serveur, pour qu'il les ajoute à une table dans une base de données MySQL.

Je crois (mais je ne suis pas sur) qu'il est possible d'attaquer une base de donnée directement depuis le code JS, mais je me demande si ce n'est pas un peu risqué de le faire (si le JS s'exécute depuis le client). Donc je voudrais envoyer des données contenues dans des variables JS au serveur pour qu'il les insère dans différentes tables. Est-ce que c'est possible? Si oui, pourrait-on m'aiguiller?

Merci d'avance,

12 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
20 déc. 2006 à 11:46
Bonjour,

en fait tu ne vas pas simuler le formulaire, mais créer un formulaire pour lequel les champs seront invisible.
<form name="mon_form" method="post" action="la_page_qui_traite_la_commande">

</form>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
3
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
20 déc. 2006 à 11:50
Bonjour




Pour envoyer un tableau javascript via un formulaire (on parle bien d'un tableau, hein, celui qui est défini par Array() et dont les éléments sont accessibles par tab[i] ?), le mieux (en tout cas le plus simple) est de prévoir une zone cachée dans le formulaire :

puis avant d'envoyer le formulaire, mettre le tableau dans la zone cachée :

document.getElementById("zone_cachee").value=tab.join(",")

tu récupère le tout "de l'autre côté" en php, asp , asp.net etc ... pour traitement

Cordialement
Roro webDev
3
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
20 déc. 2006 à 11:18
Bonjour




Tu as a-peu-près tout bon.
Pour envoyer des données vers le serveur, deux méthodes : le formulaire ou AJAX (pleins de tutos sur ce site). Ton code JS ne peut pas attaquer directement un BdD, mais par le biais d'une des deux méthodes précitées, ça le fait.

Cordialement
Roro webDev
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 11:29
Merci pour ta réponse,

Découvrant un peut le developpement web, je pense m'orienté vers un formulaire plutôt que de faire l'AJAX. En fait, j'ai toutes mes données dans un tableau JS, saurais-tu comment je pourrais les faire transiter via un formulaire?
Pour te situer la chose, je fais une sorte d'établissement de commande, je tape ma ligne, je clique sur ajouter, je stock les données dans un tableau JS, j'ajoute la ligne à ma commande qui est affichée au dessus, et j'ai de nouveau ma "ligne à remplir", et je recommence ainsi de suite. Ce que je voudrais faire, c'est que quand je clicque sur un bouton du genre "valider la commande", ça envoi mon tableau JS au serveur.
Est-ce qu'il est possible de "simuler" le formulaire ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
20 déc. 2006 à 11:52
Bonjour




ah, ben le temps de taper ma prose, on s'est croisé. Bonjour Nick

Cordialement
Roro webDev
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 11:53
D'accord,
je vais essayer merci ;)
Mais je me demande si le serveur n'attendra pas un nombre fixe de données?
Le nombre de lignes de mon tableau JS a transmettre n'est pas constant.
Est-ce que en php on peut modifier le nom de la variable ? un truc du genre $("nom"+chiffre) ?

Merci
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 11:57
roro06>
Ok, merci
C'est bien un tableau avec les Array, mais c'est un tableau 2 dimensions -> tab[i][j]
qu'est-ce que ca fait  tab.join(",")  ?
Merci
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 12:01
je crois que j'ai compris,

j'ai un tableau tab[5]={1,2,3,4,5}

document.getElementById("zone_cachee").value vaudra : "1,2,3,4,5"
et avec le php je redécoute derriere ?

Merci
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
20 déc. 2006 à 12:07
Re,
yep roro06.

Ton tableau à 2 dimensions, c'est parce que tu as un seul tableau pour l'ensemble ou as-tu plusieurs tableau à 2 dimensions ?
Dans le premier cas, une solution serait de séparer chaque colonne et de mettre le résultat de chacune dans un input genre :
Colonne produit > input produit
Colonne quantité > input quantité

Concernant le nombre de ligne ce n'est pas un problème, il existe des fonctions (coté serveur) qui te permettent de connaître le nombre d'occurence que contient une variable.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
0
nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
20 déc. 2006 à 12:09
DMK04, t'as tout compris !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 12:58
Colonne produit > input produit
Colonne quantité > input quantité

je vais voir ce que j'arrive à faire avec ça, ca ne me parle pas trop mais j'ai déjà vu un truc dans le genre je crois.
Je vous tiens au courant ;)
Merci
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
20 déc. 2006 à 13:18
Bon, j'ai pas tout a fait fini de tester, mais je commence a voir comment ca va se passer ;)
Merci à tous les 2
0
Rejoignez-nous