Vous n'êtes pas identifié(e).
bonjour Jc,
excuses moi pour cette faute, je ne savais pas que cela était important, maintenant que je le sais je ne l'oublierai pas,
Je vais appliquer la correction, te tiens au courant de mes "avançées".
Merci beaucoup
pierrot
Hors ligne
Bonjour Jc,
je crois que sans <form..submit> il ne doit pas être possible de passer de cfg-element-35-7 à $nomtobd puisque je n'ai pas de submit dans un <form> ?
La connexion enregistre donc obligatoirement une donnée, mais toujours "value vide"
Je crois de plus en plus que je ne vais pas pouvoir éviter AJAX, que je connais très très peu.
Ça fait quasiment 3 semaines que je butte sur cette difficulté, je dois maintenant la contourner.
Avec tout les codes que j'ai essayés, cela aurai du fonctionner, mais ce n'est pas, je pense, un problème de code php, php n'y peut rien sans <form>
qu'en penses tu ?
pierrot
Hors ligne
Bonsoir
Il n'y a que deux possibilités en effet
Soit :
1) on passe par un <form action="" method="post"> .... <input type="submit"></form>
2) on n'utilise pas la balise <form></form> et on passe par Js avec Ajax.
Donc faut se décider
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour Jc,
OK, je passe par Js / Ajax, j'ai commencé à regarder comment ça fonctionne hier.
Je crois qu'il doit être possible d'utiliser un Js du formulaire déjà existant ( Jquery).
Il contient:
jQuery('#cfg-contactform-35 .cfg-submit').click(function()
C'est normal que je n'ai pas de onclick nulle part ? regardes mon html du bouton submit ci-dessous :
D’après ce que je crois comprendre, le traitement du formulaire ce fait en donc en JS avec contactform-35
En tout cas, le Php précédent n'est pas perdu..
Je me demandais si il ne faudrait pas créer 2 fichiers, l'un pour se connecter et l'autre pour insérer, et pourquoi pas aussi extraire, de telle sorte que je puisse les rappeler quand je le voudrai.
Bref, je redémarre.. une prise de tête
Comme tu l'as écris , c'est le métier qui rentre ... oui, mais je t'assure qu'il rentre pas vite..
Une nouvelle fois merci,
pierrot
Hors ligne
Bonjour,
Un jour vous nous dites
je crois que sans <form..submit> il ne doit pas être possible de passer de cfg-element-35-7 à $nomtobd puisque je n'ai pas de submit dans un <form> ?
puis le lendemain vous nous montrez :
<input type="submit" class="cfg-submit " name="cfg-element-35-32" id="cfg-element-35-32" value="Envoi du message" />
ce qui constitue le submit de votre formulaire. Donc votre formulaire passe par une soumission html. Vous devez donc avoir un <form>...</form> quelque par dans votre code.. cherchez mieux.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Pour confirmation, tu trouveras ci-dessous le code html le code html de ma page formulaire
la Div nom prenom
<!-- NOM PRENOM -->
Puis la Div submit de la même page html ou se trouve name="cfg-element-35-7" qui pose probleme
Je n'ai rien d'autre, ce n'est pas manque d'avoir "fouillé" les fichiers du formulaire,j'ai aussi pensé que je me trompais en ne les trouvant pas, mais je dois me rendre à l'évidence, il n'y a pas de <form>, ni de onclick, ni rien qui y ressemble.
La difficulté vient de la transmission des données entre formulaire HTML et code php... alors cherché et trouvé un fichier JS contactform.js qui génère le submit et l'envoie en POST vers le fichier PHP : form-validation.php (jQuery.post('cfg-contactform-35/inc/form-validation.php'
Ce script devrait permettre de gérer l'enregistrement des données de mon html et ensuite passer au traitement bd dans form-validation.php, , je me trompe ?
Fichier contactform.JS
var formcontainer = jQuery(this).closest('.cfg-contactform');
var loading = formcontainer.find('.cfg-loading');
var formcontainer = jQuery(this).closest('.cfg-contactform');
var loading = formcontainer.find('.cfg-loading');
loading.show();
var submit_btn = jQuery(this);
submit_btn.hide();
formcontainer.find('.cfg-errormessage').hide().remove();
var form_value_array = Array();
var radio_value = Array();
var checkbox_value = Array();
var selectmultiple_value = Array();
var deleteuploadedfile_value = Array();
formcontainer.find('.cfg-form-value').each(function()
{
var elementlabel = jQuery(this).closest('.cfg-element-container').find('.cfg-label-value');
var elementlabel_id = elementlabel.closest('label').attr('id');
var elementlabel_value = elementlabel.html();
// catch uploads
if(jQuery(this).hasClass('cfg-uploadfilename'))
{........}
// catch input text values, textarea values, select values
if(jQuery(this).is('.cfg-type-text, .cfg-type-textarea, .cfg-type-select'))
{.......}
// catch radiobutton values
if(jQuery(this).is(':radio'))
{....}
// catch checkbox values
if(jQuery(this).is(':checkbox'))
{..}
// catch multiple select values
if(jQuery(this).hasClass('cfg-type-selectmultiple'))
{....}
// catch time values
if(jQuery(this).hasClass('cfg-type-time'))
{.....}
});
// catch list of uploaded files to delete
formcontainer.find('.cfg-deleteuploadedfile').each(function()
{..});
var captcha_img;
var captcha_input;
if(formcontainer.find('.cfg-captcha-img').length)
{...}
// console.log(deleteuploadedfile_value);
// console.log(form_value_array);
[b]jQuery.post('cfg-contactform-35/inc/form-validation.php',[/b]
{.... },
function(data)
{....} /* end function data */
); /* end jQuery.post */
}); /* end click submit */
// DELETE UPLOADED FILE
jQuery('body').on('click', '#cfg-contactform-35 .cfg-deleteupload', function()
{....});
});
Cela engage AJAX pour communiquer avec ma bd et php pour traiter, tu l'avais d'ailleurs évoqué.
Je crois, j’espère.. cette fois "tenir le bon bout".
je ne saurai assez te remercier, ça doit devenir répétitif pour toi, pourtant je ne peux faire que ça, il est rare d'être ainsi accompagner dans la durée.
Il faut juste que tu me dises si je dois te tutoyer ?, je suis un tantinet "vieille France, et suis gêné de te tutoyer alors quoi tu ne le fais pas.
Pierrot
Dernière modification par pierrot35 (03-10-2014 16:04:32)
Hors ligne
New - En fait, il apparaîtrait que le formulaire soit conçu pour automatiquement récupérer tous les éléments html dont les class sont listées dans le script....
Donc il suffirait de traiter l'insertion en db dans form-validation.php
Si c'est ça, ça sent l'écurie..:)
pierrot
Hors ligne
Bonjour,
Wow, je ne sais pas si c'est vous qui avez fait ce code, mais c'est une technique que je déconseille vivement. Elle consiste à garder le bouton submit html d'un formulaire sans définir le formulaire au niveau html, et reconstituer le formulaire au niveau Js pour l'envoyer comme si cela avait été fait via html. Le problème ici, c'est que la longueur du code nécessaire pour envoyer les paramètres via ajax du formulaire est multiplié par 5 au bas mot, peu performant (au lieu de passer par des ID d'éléments on passe par des classes, des "closest", etc... qui sont aussi des moyens peu performants pour lire le DOM), et des problèmes de portabilité se posent car chaque navigateur a ses propres spécificités à ce niveau.
A cette complexité vient se rajouter le fait que votre formulaire contient un upload de fichier et une gestion de captcha, qui font que je vous déconseille vivement d'utiliser cette technique.
La première chose que je vous conseille de faire est de supprimer le bouton de soumission <input type="submit" /> de formulaire classique pour ne pas créer de conflit html/js au niveau gestion soumission. Ensuite, il est plus performant de gérer la soumission de fichier et la gestion de captcha et la soumission de formulaire d'une manière indépendante en ajax. Pour le bouton de soumission mettez un bouton comme ceci
Ensuite pour gérer l'appel ajax passez par une structure comme celle-ci:
}
});
}
Voilà Bon week-end
EDIT :
Cela engage AJAX pour communiquer avec ma bd et php pour traiter
Attention on est pas dans une architecture MVVM mais MVC, donc notre appel AJAX ne communique pas avec la BD directement mais avec un contrôleur Ajax en PHP (ici validation_form.php).
Dernière modification par Jc (04-10-2014 02:09:37)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour JC,
Vous savez, je ne serai jamais un pro..
Il est vrai que je n'ai pas fait se code, j'avais fait mon propre formulaire "classiquement" avec <form.. input..> etc.., mais je n'en était pas satisfait notamment au niveau du captcha et au niveau de l'envoi mail vers la personne qui remplissait le formulaire, et du retour de contact vers ma propre boite mail.
Mon formulaire ne faisait pas très pro, c'est pour cela que je suis reparti d'une autre base et l'ai modifié pour obtenir ce que je voulais.
Cette réorientation
Tout cela me perd un peu, je ne comprend pas tout mais je vais travailler sur ce que vous me dites et tenter de tout "reconceptualiser":
Je pensais avoir compris.., AJAX fait bien le pont entre le php ( form-validation.ph) et la bd, qui lui gère l'insertion des données en bd, mais ou est passée la connexion bd, également dans le php ( form-validation.ph) ou dans un php sur la page html ?
Et c'est bien le submit HTML qui appelle AJAX .. en fait c'est une boucle..
Je vais chercher des topologies de tout ça sur internet.
En entrant le code function submit_form(){.} que vous m'indiquez, je vais devoir supprimer les anciens codes , le(s)quel(s) ? , je risque de faire des bêtises...
Mon bilan
Cela fait maintenant presque 3 semaines que je tente d'intégrer de nouvelles dimensions, je suis totalement autodidacte et essaye apprendre "sur le tas"..
Souvenez vous d’où nous sommes partis, un simple code de protection "syndicale", et comme je vous le disais, plus j'avance et plus je m'aperçois de mon ignorance grandissante..
Si je n'y arrive pas ce weekend, je vais devoir rester sur la méthode d'insertion en db dans form-validation.php.
Je sais que ce n'est pas conforme à ce que vous préconisez, par ailleurs avec raison me semble t'il, mais je dois rester dans ma réalité de débutant très moyen et pense être, en l'état, bien incapable de maîtriser ce que vous indiquez, ce que je regrette réellement, j'aurai bien souhaité avoir du top, mais c'est comme ça, à chacun ses capacités.. ça semble si simple pour vous..
Même avec cette méthode d'insertion du traitement de toutes données en bd via form-validation.php , je vais devoir adapter le code que j'ai réalisé avec votre précieux concours, mais il ne s'agit plus d'une seule donnée, mais d'un pack complet..
Faut il encore renommer chaque variable, faut il faire tout en même temps, etc.. mais cela restera vraisemblablement maintenant que du codage et de l'articulation méthodologique.
Je dois ensuite retourner rapidement sur l'appli pour me "battre" avec postgresql ( le calcul et la mise à jour de données en temps réel sur l'Ihm).
Si vous pouvez m'accompagner pour le dernier coup de pouce..
Merci encore et bilan ce WE
Cordialement
Pierrot
Hors ligne
Bonsoir
Je pensais avoir compris.., AJAX fait bien le pont entre le php ( form-validation.ph) et la bd, qui lui gère l'insertion des données en bd, mais ou est passée la connexion bd, également dans le php ( form-validation.ph) ou dans un php sur la page html ?
Et c'est bien le submit HTML qui appelle AJAX .. en fait c'est une boucle..
Ajax c'est quoi? C'est un composant du navigateur (XMLHttpRequest appelé XHR en JQuery ou en raccourci) qui permet d'effectuer une requête serveur via le protocole http ou https en mode asynchrone. Cela permet donc de mettre à jour une page sans devoir la recharger.
Un formulaire HTML, lorsqu'il est soumi au serveur en html, l'est via une requête synchrone http ou https et route sur une nouvelle page (qui peut être la même) et va générer un rechargement de la page. Ce n'est donc pas la même chose.
Donc quand on a un formulaire avec captcha ou upload fichier, on ne peut pas le faire en mode synchrone, car l'upload va recharger la page et si le client avait déjà rempli les informations demandées dans le formulaire, il va devoir le refaire et cela peut le dissuader, trouvant cela trop fastidieux. On peut donc faire l'upload de fichier en Ajax et le captcha en ajax, et la soumission du formulaire en mode synchrone ou en ajax également.
En ce qui concerne l'appel à la base de données elle doit se faire via PHP. L'idéal est de faire une classe php de gestion de connexion à la BD et de la mettre en include partout là où vous en avez besoin (contrôleur métier ou contrôleur Ajax principalement).
Bon dimanche
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Saluton,
Il faut reconnaître que, pour le débutant, Ajax introduit une couche de complexification de représentation de l'architecture qui a de quoi le dérouter.
Je connais même des professionnels qui se retranchent derrière de "pseudo" problématiques de performances pour privilégier JAVA à PHP et des applets à Ajax, voire javascript, alors, qu'en fait, ils sont juste atteints du "baby duck syndrom"
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Merci Mk pour ce retour. Beaucoup de programmeurs Java sont de culture application compilées desktop ou client serveur LAN toujours en mode compilé. Il est vrai que ce type d'architectures quand elles sont portées dans un contexte web, le web devient un facteur limitant en termes de performances applicatives pour ces solutions, car leur architecture n'est pas adaptée pour le web.
Après grâce aux websockets cet effet va se réduire avec le temps, et va reporter la charge au niveau gestion des connexions sur les serveurs et va rajouter une couche donc sur des solutions déjà basées sur des api ou webservices SOAP en termes de consommation de ressources.
Cependant pour utiliser websockets, ils devront bien apprendre à faire un appel ajax, car c'est de cette façon qu'une telle connexion doit être initiée.
Bonne fin de week-end.
Dernière modification par Jc (05-10-2014 18:32:17)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
@Pierrot35
Voici comment vous pourriez structurer votre contrôleur ajax en POO côté PHP
Class AjaxManager{
// classe statique. Attention: Seule la méthode LaunchRequest doit être publique.
}
print AjaxManager::LaunchRequest($_POST);
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour Jc,
j'ai pas réussi.. et vais "m'acharner" encore qq jours avant de revenir sur "ma terre".
Il me manque toujours un bout du mécano pour que je comprenne et pour avoir une vision globale.
Je m'aperçois que, comme je viens de le lire sur votre précédent post et celui de Infantimigulo, les informations qui circulent sur le net concernant cette thématique sont souvent incohérentes les unes avec les autres, parfois même contradictoires, et , pour un non initié comme moi, cela biaise du raisonnement, à en être découragé ou même se sentir un limité.. si ce n'est pas id..
Donc je repose le tout, et me relance, je deviens convaincu que c'est un concept qui, à terme,va devenir nécessaire presque à tous.
Si vous le voulez bien, nous redémarrons.. doucement.
Voila le code que vous m'avez indiqué, j'ai tenté de le compléter mais sans résultat, je ne l'ai pas tout compris.
Vous trouverez après celui-ci, un autre code que j'ai travaillé pour tendre vers un raisonnement à mon niveau, avant de le recomplexifier par le votre, néanmoins je crois que je commence à me représenter un peu mieux le concept, c'est pas encore très clair, mais ... mais le voile se lève..
Ma base de reflexion / RECONFIG
Et puis le changement du submit que j'ai remis dans<Div> .. <form>
J'espère que ça ne va pas me griller l'envoi mail du formulaire.
pierrot
Hors ligne
Bonsoir,
Oui on va reprendre les choses, vous semblez être perdu en effet.
1) Quand vous voulez soumettre un formulaire en ajax, le mieux pour simplifier le code, éviter les conflits, c'est de tout faire en ajax. Donc n'utilisez plus la balise <form></form> html.
2) Prenons le cas d'un formulaire (sans balise form) avec nom, prénom et email à transmettre au serveur
3) Maintenant la fonction javascript de traitement
4) Voyons maintenant le code de validation_form.php
}
function validation_database($nom,$prenoms,$email){
require_once('connect_db.php');
// code de validation en base de données (MySQL,postgreSQL, etc...)
// si erreur alors on fait un print de l'erreur ex:
if ($erreur_trouvee){ print json_encode(array('message'=>' Une erreur est survenue dans la validation en base de données (-4)'));return false;}
// si tout ok
return true;
}
if (!isset($_POST['fn']) || empty($_POST['fn'])){ print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-1)'));exit;}
$fn=$_POST['fn'];
switch ($fn){
default: print json_encode(array('message'=>'Fonction Ajax inconnue / non gérée.'));exit;
break; case 'validate_form':
if (!isset($_POST['NOM']) || !isset($_POST['PRENOMS']) || !isset($_POST['EMAIL'])) {
print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-2)'));exit;
}
$nom=$_POST['NOM']; $prenoms=$_POST['PRENOMS']; $email=$_POST['EMAIL'];
// on peut vérifier (recommandé) que le format des données transmises est acceptable (on ne fait pas confiance au client).
if (check_entries($nom,$prenoms,$email)===false){ print json_encode(array('message'=>' Erreur dans le format des paramètres soumis au serveur (-3)'));exit;}
if (validation_database($nom,$prenoms,$email)===false){exit;}
// on arrive ici donc tout c'est bien passé
print json_encode(array('message'=>'ok'));
}
Voilà tout le processus a été expliqué. En espérant que cela vous aide à y voir plus clair.
++
Dernière modification par Jc (07-10-2014 03:10:40)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
@MK: j'ai fait d'une pierre deux coups, vous pouvez intégrer ce que je viens de faire dans un tuto du site
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Vous trouverez après celui-ci, un autre code que j'ai travaillé pour tendre vers un raisonnement à mon niveau, avant de le recomplexifier par le votre, néanmoins je crois que je commence à me représenter un peu mieux le concept, c'est pas encore très clair, mais ... mais le voile se lève..
Si je peux me permettre, j'ai justement simplifié au maximum et écrit le stricte nécessaire pour que tout fonctionne nickel. Donc si vous devez retenir quelque chose, croyez-moi retenez ce que j'ai fait pour comprendre : pas de fioritures ni de code inutile.
var xhr;
if(window.XMLHttpRequest || window.ActiveXObject)
{
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else
{ // Internet Explorer <7
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
Ici vous avez essayé de construire une instanciation du composant XmlHttpRequest pour qu'elle soit compatible crossbrowser. La compréhension d'une gestion Ajax de A à Z en Javascript nécessite une bonne connaissance du Javascript. Tout ceci est inutile dans le code que je vous ai présenté car ce code est intégré dans le Framework JQuery et vous n'avez pas besoin de vous occuper de cette tâche. Néanmoins vu que cela complique votre compréhension, je vous invite par commencer à comprendre le fonctionnement via mon code, et ensuite si vous voulez savoir comment cela fonctionne "sous le capot" en javascript pur, pas de soucis, on peut voir cela ensemble si vous souhaitez.
Et c'est bien le submit HTML qui appelle AJAX
Ceci est faux. Un formulaire HTML <form></form> avec un bouton submit ne passe pas par Ajax pour envoyer le formulaire au serveur.
Je dois ensuite retourner rapidement sur l'appli pour me "battre" avec postgresql ( le calcul et la mise à jour de données en temps réel sur l'Ihm).
Pouvez-vous préciser ce qui nécessite de la mise à jour temps réél? ceci n'est pas anodin et doit être justifié.
Bonne journée.
Dernière modification par Jc (07-10-2014 08:11:47)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
merci Jc pour ce retour ,
Je vais me concentrer sur vos conseils, ligne à ligne, et abandonner internet pour "faire de la soudure", je m'aperçois que cela porte la confusion dans la compréhension de vos explications, pour en final obérer la faculté de raisonner globalement.
Ce que vous notez concernant un tuto, j'y avais pensé, mais je crois que c'est encore prématuré.
Ce n'est pas moi qui serait capable de faire un tel tuto, il s'agit de votre tuto, donc du ressort de vos qualités et de votre expertise.
Si vous le voulez bien, dés que j'aurai fini ce thème, je formaliserai ce tuto avec des termes de débutant, et vous corrigerez en terme de technicité, pour obtenir un document accessible à tous et expert dans son objet.
Des tutos, il y en a à profusion, d'une part ils concernent très souvent la capture de données dans la bd avec des <form> ( ici c'est l'inverse), et d'autre part sont souvent remplis de "barbarismes" difficile à digérer., notamment dés que l'on touche Ajax.
Il est facile de compliquer des choses simples ( ça je sais faire..), mais rendre simple des choses compliquées c'est autrement plus pareil.
Si je comprends, je pense que les autres débutants comprendront aussi.
Je reviens vers vous dés que j'aurai assimilé ce que vous m'indiquez.
J'ai maintenant du pain sur la planche,
Pierrot
Hors ligne
Excuse pour le tuto, je n'avais vu que c'était destiné à Infantimigulo, que je salue, étant telgrucien.
Hors ligne
(re)
J'entre bien mes données dans ma table avec mon php ?
J'ai un fichier connectbd dans le même répertoire :
Est ce qu'il faut que je mette le code d'enregistrement des données dans la bd aussi dans ce fichier, comme ci-dessous ?
Puisque dans le php, j'appelle le fichier ci-dessus ( require_once('connect_db.php')
> celui-ci établit gère déjà les codes de validation en base de données
> donc je ne fais juste qu'appeler connectdb.php qui s'occupe de tout le traitement bd ( connexion,validation et enregistrements) ?
Sinon ou est le choix de la table de la bd ?
J'approche..
Concernant "la mise à jour en temps réel", je me suis probablement mal expliqué :
Mais cela est un autre problème, je travaille en java/struts/glassfish avec Netbeans : dans l'appli, j'ouvre un popup, puis l'utilisateur entre ces données qui sont enregistrées dans postgresql lorsque le popup est validé, ensuite des triggers traitent ces données et mettent la bd à jour, mais les données traitées (opérations arithmétiques simples) ne se mettent pas à jour dans le popup au fur et à mesure qu'elles sont saisies, les résultats sont stockés, mais ne réapparaissent instantanément.
Si vous le voulez bien je vous en ferai part ultérieurement, je ne veux pas vous "squatter", ce que vous faites en ce moment est déjà énorme, et j’espère infiniment que cela servira à d'autres que moi seul.
Une chose après l'autre, et à chaque jour sa galère..
pierrot
Hors ligne
Bonsoir,
Une chose après l'autre, et à chaque jour sa galère..
A ce propos, avez-vous compris avec Ajax? vous en êtes où? Parce qu'à ce propos, le but c'est que vous ayez compris.
J'entre bien mes données dans ma table avec mon php ?
Je confirme
require_once('connect_db.php')
oui normalement cet appel se charge de se connecter directement à la BD, vous n'avez plus qu'à requêter ensuite.
Je vous conseille d'utiliser PDO, autant s'y mettre de suite, c'est la meilleure couche d'abstraction d'accès aux données de PHP (elle est standard).
$sql="INSERT INTO confid (nomprenom) VALUES ('$nomtobase')";
$sql="INSERT INTO confid (email) VALUES ('$email')";
$sql="INSERT INTO confid (telephone) VALUES ('$telephone')";
$sql="INSERT INTO confid (typecontact) VALUES ('$typecontact')";
à remplacer par
Voilà ++
Dernière modification par Jc (07-10-2014 19:18:07)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour JC,
OUI, je pense avoir le schéma en tête, il y a certains points que je n'ai pas totalement intégrés mais l'essentiel est le raisonnement.
Mais j'ai un doute sur le JS du submit "envoyer", si je ne trompe pas il doit bien être en JQUERY comme ceci :
jQuery(function(){
function submit_form(){...}
et non en format classique : <script type="text/javascript">...</script>
Isoler mon ph
Si j'isole mon fichier php sous un autre nom, donc sans l'intégrer dans le fichier existant form-validation.php de l'ancien formulaire, ce serait peut être mieux ?
Maintenant je vais pouvoir refaire mon formulaire avec cette méthode, (modules : envoi/réception mail, textarea, checkbox, etc..) puisque l'ancien est de fait devenu invalide.
Question Div
Donc, je vais devoir, pour chaque div (sans <form>), entrer un input (div/email, textarea, etc..), puis laisser le script submit engager la chaîne de traitement de l'ensemble des input, cela est bien valide ?
Je voudrais récupérer et enregistrer l'Ip du contact :
<?php
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ip=$_SERVER['REMOTE_ADDR'];
echo $ip;
?>
Avec cela je peux enregistrer $ip dans ma bd en l'ajoutant au JS ?
var ip=$('#form_ip').val();
+
php
function check_entries($nomprenom,$email,$telephone,$typecontact,$ip)
Ou faut il que je l'input aussi ?
Cela n'est pas urgent...
Avant cela, je vérifie tout les codes avant de lancer le formulaire et espère que ça va bien se passer.
Merci pour votre patiente et votre pédagogie,
Pierrot
Hors ligne
Bonjour,
Mais j'ai un doute sur le JS du submit "envoyer", si je ne trompe pas il doit bien être en JQUERY comme ceci :
jQuery(function(){
function submit_form(){...}et non en format classique : <script type="text/javascript">...</script>
Wow, il semblerait que vous partez de loin en techno web... Ca fait longtemps que vous faites du Java?
Sinon pour vous répondre sur ce point, le code javascript fourni n'est pas à modifier niveau contexte/structure, comme vous venez de le faire par exemple, sauf à l'adapter en orienté objet, mais là vous n'y êtes pas non plus.
Ensuite <script type="text/javascript">...</script> n'est pas du tout la forme classique, mais la forme "inline" qui est à proscrire dans un contexte pro, car elle ne permet pas la gestion de cache du code principalement. La bonne méthode est d'utiliser l'insertion par référence comme un include de fichier dans votre page html
En veillant à bien charger le Framework jquery avant votre bibliothèque contenant votre fonction submit_form() comme ici.
Si j'isole mon fichier php sous un autre nom, donc sans l'intégrer dans le fichier existant form-validation.php de l'ancien formulaire, ce serait peut être mieux ?
De quel fichier php à isoler parlez-vous?
Donc, je vais devoir, pour chaque div (sans <form>), entrer un input (div/email, textarea, etc..), puis laisser le script submit engager la chaîne de traitement de l'ensemble des input, cela est bien valide ?
Oui
Je voudrais récupérer et enregistrer l'Ip du contact
Avec cela je peux enregistrer $ip dans ma bd en l'ajoutant au JS ?
var ip=$('#form_ip').val();
??? Javascript est interprété et éxécuté côté client donc navigateur, PHP l'est exclusivement côté serveur. L'adresse IP de l'internaute connecté étant connue d'office par le serveur, pas besoin de l'intégrer dans votre code html pour le récupérer en Js et le renvoyer au serveur!!! Donc oubliez ce code!
A bientôt
EDIT:
Pour information,
// écriture en javascript pur
var nom = document.getElementById('form_nom').value;
Dernière modification par Jc (08-10-2014 14:19:03)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Je vous comprends plus que bien ,
Pour vous éclairer en toute sincérité ( je sais que ce n'est pas le but de ce forum)
Les technos et le codage informatique.. une longue histoire.. de 8 mois environ, ce n'est pas mon métier de base, mais de fil en aiguille ...et des heures à ne plus compter.. je brosse petit à petit un ensemble de techno que souvent je découvre à l'avancement.
Cela m'engage en permanence vers des connaissances de plus en plus élargies sans avoir la possibilité de les consolider une à une comme je le voudrais, jusqu'à les confondre en terme d'applicatifs.
Java/posrgresql/glassfish/struts/,.. je me suis lancé sur ces technos ( livres, tutos, et appuis de temps en temps) en travaillant sur une appli qui à la base était déjà formaté avec ces technos, donc pas le choix, il à bien fallu que je me les approprie partiellement pour évoluer vers ce que je veux faire maintenant.
C'est comme ça que j'ai commencé, par mimétisme, en testant ce que je faisais jusqu'à ce que ça marche..
Ma difficulté fondamentale, enfin je le pense, est que je travaille sur une techno, puis passe sur une autre, et ainsi de suite, si bien que j'ai du mal à capitaliser ce que j'apprends pour le réinvestir sans me replonger dans ce que j'avais compris, ou souvent cru comprendre, 3 semaines avant, surtout qu'à chaque fois que je pousse une porte il y en a des dizaines d'autres derrière, à la fin ça fait beaucoup..
Je suis bien conscient de cela, ne m'en cache pas et ne forge pas non plus de prétentions, qui seraient par ailleurs démontées par le premier véritable informaticien venu.
Ce que je sais par contre, est que ça avance et que ça finira par aboutir, c'est un travail de fourmi, surtout que, lorsqu'on a des petites jambes on doit faire des petits pas, sinon.. on se casse L..
Je ne peux vous en dire plus en public, mais si cela vous intéressait, je peux vous envoyer un lien vers l'appli et vous verriez que ce n'est pas une petite appli "creuse".
Elle à une longue histoire derrière elle qui se compte en années...et vais pas la laisser tomber maintenant, même avec mes petits moyens.
Si vous vouliez d'autres infos, plus précises et plus circonstanciées, je vous enverrai avec plaisir celles-ci par mail privé, en confiance.
Pour revenir sur des choses plus factuelles :
J'ai ce code dans mon head
Il faut aussi que je rajoute quand même la bibli ? <script type="text/javascript" lang="fr-fr" src="libs/js/mabibliotheque.js"></script>
Bon, j'y retourne, je clique sur envoyer et rien ne bouge, je vais voir ce qui se passe.
Je reviens vers vous plus tard
pierrot
Dernière modification par pierrot35 (08-10-2014 16:37:30)
Hors ligne
Il faut aussi que je rajoute quand même la bibli ? <script type="text/javascript" lang="fr-fr" src="libs/js/mabibliotheque.js"></script>
Maintenant que j'ai vu votre header, il semblerait qu'il y ait deux fichiers js "redondants" à vérifier donc s'il n'y a pas moyen d'en faire un seul tout propre tout beau
: <script src="cfg-contactform-35/js/contactform.js"></script> et <script src="cfg-contactform-35/js/scriptformulaire.js"></script>
Sinon pendant qu'on y est, habituez-vous à déclarer vos CSS en premier, ensuite les frameworks s'il y en a, ensuite leur plugins, et en derniers vos lib applicatives js. (En général un par module => donc toujours qu'un sur la page car elle est chargée dynamiquement en fonction des paramètres d'url idéalement => On ne charge que ce que l'on a besoin et rien d'autre).
++
Dernière modification par Jc (08-10-2014 18:22:31)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne