Envoyer des données javascript à un serveur [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012
-
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

Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

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
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

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
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour




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

Cordialement
Roro webDev
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

DMK04, t'as tout compris !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

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
Messages postés
206
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
7 mars 2012

Bon, j'ai pas tout a fait fini de tester, mais je commence a voir comment ca va se passer ;)
Merci à tous les 2