|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
Bonjour à tous,
Voilà, j'ai un tableau JS (2 dimensions) qui se remplit durant la saisie d'un formulaire (ce n'est pas les informations du formulaire que je récupère mais d'autres que je recalcule), et je voudrai transférer ensuite le tableau sur un base MySql dès que l'utilisateur clique sur un bouton submit. Je pense que je dois transférer mon tableau sur un autre page php, afin de pouvoir l'envoyer en sql, mais je ne trouve pas comment transférer une variable JS lors d'un submit de formulaire. Savez vous comment faire ? Merci d'avance. Thomas |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() ![]() Simon LevesqueConsultant informatique Inscription : février 2009 Messages : 97 ![]() |
Bonjour,
Tu pourrais utiliser du AJAX. Tu pourrais créer une fonction qui s'exécute lors d'un clic sur Submit et cette fonction ferait un appel AJAX qui posterait les informations sur une autre page PHP. Si tu veux utiliser la librairie Javascript jQuery, Pour le clic: http://api.jquery.com/click/ Pour Post AJAX: http://api.jquery.com/jQuery.post/ Petite note, n'oublie pas qu'un utilisateur mal intentionné pourrait modifier des valeurs avant de les envoyer. Pour éviter cela, puisque tes valeurs sont calculées, tu pourrais les recalculer du côté serveur en PHP lors du Submit plutôt que de faire un appel AJAX. |
|
00
|
|
|
#3 | ||||
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
Merci Provirus pour cette réponse rapide.
Pour autant, j'ai du mal à comprendre le post() en Ajax. Pour illustrer, je vais mettre mon code, ça sera surement plus simple (j'ai essayé de le rendre le plus facilement lisible). Le but est de calculer le temps passé par l'utilisateur dans la case 'case1'. Je n'ai donc ici qu'une variable 'tps_case' que je souhaite transférer en sql. Code :
Le problème est que mon bouton n'est pas du texte comme dans l'exemple donc je ne vois pas comment faire. Une solution que j'imagine : Code :
. Peux tu m'aiguiller stp ?
|
||||
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() ![]() Simon LevesqueConsultant informatique Inscription : février 2009 Messages : 97 ![]() |
Étant donné que tu utilises du Javascript pure aussi, tu peux ignorer le jQuery.click et à la place, sur ton input submit mettre onClick:
Code :
<input id="submit" type="submit" value="Valider" onClick="soumettre()" /> Code :
|
||
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
Merci pour ta réponse.
Malheureusement, j'ai pas l'impression que cela marche. Voici mon code : (j'ai fait le post dans le fichier index.php pour voir le résultat directement, sans avoir a changer de page, je ne pense pas que cela pose problème). Code :
Je ne suis pas convaincu des 2 cibles "index.php" à indiquer (l'une dans le formulaire, l'autre dans ta formule). Pour autant, j'ai testé plusieurs autres configurations, sans succès. J'ai testé la formule (avec des alert à l'intérieur), et elle fonctionne bien (d'ailleurs, la variable tps_case répond bien). Je ne vois vraiment pas où est le problème |
||
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() ![]() Simon LevesqueConsultant informatique Inscription : février 2009 Messages : 97 ![]() |
Comment regardes-tu le echo parce que présentement, le navigateur appelle, mais on ne fait rien avec la valeur de retour? Il faudrait que tu regardes avec un debuggueur. Par exemple dans Chrome.
Sinon, au lieu de faire un echo, essaye d'écrire dans un fichier sur le serveur. |
|
00
|
|
|
#7 |
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
Ben, en validant, je recharge la page index.php.
Normalement, il doit alors prendre en compte le code (Par exemple, si je fais le même code, mais avec case1 (le nom de ma case de formulaire), il me ressort bien la valeur que j'ai indiqué précédemment dans la case) Non ? Concernant l'écriture dans un fichier, tu parle d'une base sql ? Désolé, je découvre vraiment petit à petit, à la fois php et JS. |
|
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() ![]() Simon LevesqueConsultant informatique Inscription : février 2009 Messages : 97 ![]() |
Quand tu fais du AJAX, c'est une requête distincte qui est envoyée à la page désirée et le résultat est retourné.
Par exemple, au lieu de mettre: Code :
$.post("index.php", { case: tps_case} ); Code :
Là quand tu soumets, ce que tu vois dans ton navigateur, c'est uniquement le résultat de ta soumission et c'est pourquoi tu vois si tu mets 'case1'. Tu ne verras jamais les autres trucs. Je te conseille donc de changer Code :
$.post("index.php", { case: tps_case} ); Code :
$.post("testwrite.php", { case: tps_case} ); Code :
<?php file_put_contents('touch.txt', $_POST['case']); |
||
|
10
|
|
|
#9 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Code :
Tu peux soit passer par une requête synchrone (mais bon, pas top) soit utiliser un input type button à la place submit, faire tes vérifications et soit rediriger en JavaScript, soit appeler la méthode submit() du formulaire.
__________________
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 JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#10 |
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
Bon, ça marche avec le petit exemple !!
Mais plus avec mon code ![]() Je regarde tout ça cette aprem, mais c'est bon je le sens bien (après tout, là, j'ai tout ce qu'il me faut). Un grand merci provirus pour ton aide et ta patience ![]() Je te tiens au courant. |
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Thomas DelcliteDoctorant Inscription : mai 2011 Messages : 15 ![]() |
En fait, j'avais oublié d'ajouter le code JS, jquery-latest.js, maintenant ça marche parfaitement.
Merci beaucoup, je vais pouvoir bien avancé avec ça. A bientôt. Thomas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com