begin process at 2010 03 22 05:18:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > GÉNÉRATEUR DE FORMULAIRE [AJAX][PHP5]

GÉNÉRATEUR DE FORMULAIRE [AJAX][PHP5]


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :formulaire, form, générateur, générer, ajax Niveau :Initié Date de création :20/03/2008 Date de mise à jour :20/03/2008 16:30:39 Vu / téléchargé :21 451 / 22 620

Auteur : Morphinof

Ecrire un message privé
Commentaire sur cette source (29)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour,
Voici un générateur de formulaire html, le principe est assez simple : on se connecte à une base mysql pour pouvoir générer des champs de formulaire depuis une table et en quelques clic on à notre formulaire qu'il ne nous restera plus qu'a inclure.
  -
/ ! \ Cette source à été développée sous FireFox et bug légèrement  
sous IE, sa n'empêche pas de générer votre formulaire mais c'est plus agréable.

Etape 1 : La connexion à la base
Etape 2 : Inclusion d'un fichier css et d'un fichier javascript
Grace à cette étape vous pourrez appliquer un style à votre champ ainsi qu'un appel de fonction sur un des évènements déclencheur.
Etape 3 : Ajout d'un champ, seule contrainte l'id du champ doit être unique, remplissez les autres options comme si vous étiez en train de l'écrire en html
Etape 4 : La source données éventuelle de votre champ, directement liée à la base à laquelle vous vous êtes connecté, 3 possibilités : depuis la base, depuis une requête sql ou encore un fichier script php.
Etape 5 : Ajoutez votre champ et rafraichissez le formulaire pour visualiser où vous en êtes.

Pour avoir un aperçu de votre formulaire cliquez sur le bouton écrire fichier puis sur aperçu.

Voila il n'est pas entièrement débugé et je vous déconseille de rafraichir la page ^^

En cas de bug n'hésitez pas à me contacter !

Démo Flash ici : http://sd-1.archive-host.com/membres/up/3538155164 4790854/DemoFormGenerator/FormGenerator.swf



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 mars 2008 12:17:00 :
Mise à jour de la description
20 mars 2008 16:30:41 :
Ajout d'une démo disponible ici : http://sd-1.archive-host.com/membres/up/35381551644790854/DemoFormGenerator/FormGenerator.swf

 Sources du même auteur

Source avec Zip Source avec une capture DBOC 2.0 [AJAX][PHP5]
Source avec Zip DBOC 1.6 [PHP5]

 Sources de la même categorie

TESTEUR DE REGEX par hornetbzz
Source avec Zip SE SOUVENIRE D'UN VISITEUR GRACE A UN COOKIE par MoulouD1993
Source avec Zip Source avec une capture CAPTCHA PHP SIMPLE par toutoos
Source avec Zip POSTER, AFFICHER, ... DES NEWS SUR VOTRE SITE par TORA38
CLASS DE CONTRÔLE DE FORMULAIRE par baxterio

 Sources en rapport avec celle ci

Source avec une capture GÉNÉRATION/GESTION DE FORMULAIRE VIA FICHIER XML par Garno
Source avec Zip MAJAX UN TOOLS (AJAX EN PHP) par michelsto
Source avec Zip Source avec une capture UPLOAD PLUSIEURS FICHIERS EN AJAX + FLASH+PHP par mnouzahir
Source avec Zip Source avec une capture GÉNÉRATEUR DE GRILLES D'ACCORDS par shemesh
Source avec Zip [PHP5] - CLASSE DE VÉRIFICATION DE FORMULAIRE par codefalse

Commentaires et avis

Commentaire de codefalse le 20/03/2008 13:43:37 administrateur CS

La première chose que j'aurai à dire c'est "Où est l'exemple ??" :p

Je n'ai pas parcouru tout ton code mais j'aurai quelques remarques par rapport à ce que j'ai trouvé :

class myException : public function __exception() n'est qu'une surcouche, tu n'en a pas besoin puisque tu appele $this->getMessage(); Bon du coup il va falloir modifier tout ton code :p

A quoi te sert concretement FileScanner ?

Dans la classe DBM, toute les fonctions commencant par un __ sont statique (d'apres ce que j'ai pu voir). Et pour chaques, tu teste si self::$instance n'est pas nul, dans le cas contraire, tu appele le singleton.
Tu te complique la vie je trouve :

Si je prends
#  public static function __set_sql($sql){
# if(empty(self::$instance)) self::create_singleton();
# self::$instance->set_sql($sql);
# }

Ta fonction __set_sql fait appel à la fonction set_sql de l'instance en cours de DBM. Pourquoi ne pas faire :

public static function getInstance () {
   if (!self::$instance instanceof DBM)
      self::$instance = new DBM ();

   return self::$instance;
}

et ensuite dans ton code tu fait DBM::getInstance ()->set_sql ();
Ca te prends trois charactères mais tu gagne en lisibilité.

Vivement l'exemple ! ;)

Commentaire de webdeb le 20/03/2008 13:47:47

J'aimerai bien voir un exemple en ligne moi si c'est possible. Autre chose : peut-on appliquer des règles de validation sur les champs de formulaire ?

Commentaire de Morphinof le 20/03/2008 14:32:08

Tout d'abord je vous remercie :D
Codefalse : que de bonnes remarques ^^ je fait encore trop d'erreurs du style que tu as relever :p

Pour la classe myException à l'origine je devais retourner plus de chose que
$this->getMessage() mais pour une question de lisibilité j'ai fini par garder que $this->getMessage() et effectivement cette classe ne me sert plus à grand chose sauf garder l'opportunité de réafficher les détails que j'ai enlevé (comme la ligne par exemple)

Le file scanner me sert à trouver le nom des fonctions javascript d'un fichier js et les styles dans un fichier css  n'ayant pas trouvé de fonction ou autre pouvant me permettre de les lister j'ai du le faire à la main, sa marche correctement sauf quand il y à beaucoup de commentaire dans un fichier css :p

pour la dernière partie au niveau du DBM tu as raison aussi je vais corriger sa :p

Webdeb : Non malheureusement je n'ai pas intégré de validateur mais l'idée est bonne il faudra que je le fasse

Pour l'exemple et bien je ne sais pas trop comment vous le donner enfin sous quelle forme vu que tout se fait au clic :D Je vais essayer quand même ^^

Commentaire de Morphinof le 20/03/2008 16:32:20

Et voila une petite démo rapide :
http://sd-1.archive-host.com/membres/up/35381551644790854/
DemoFormGenerator/FormGenerator.swf

Commentaire de neigedhiver le 20/03/2008 17:42:14

Salut,

J'ai pas regardé en détail, mais j'ai commencé à jeter un oeil à la démo. Ca a l'air sympa, joli, réfléchi, y'a du boulot derrière.
En plus, en survolant le code, j'ai cru voir que c'était propre et pas mal documenté.

Une remarque d'après quelque chose que j'ai vu et qui m'a marqué : dans la classe FileScanner
Tu utilises eregi pour savoir si un fichier est un .js ou un .css
eregi, pour un motif comme ça, j'aurai tendance à préférer une PCRE avec preg_match. A motif identique, ce sera FORCEMENT plus rapide (des benchs existent qui le prouvent, cf http://lumadis.be/regex/tuto_pcre.php#rapide )

Ta source est PHP5, tu aurais avantage à utiliser un DirectoryIterator avec filtre pour lister les fichiers css/js. J'avoue que je ne sais pas si on y gagne en perfs, mais on y gagne certainement en lignes de code et donc en lisibilité (en plus, utiliser la SPL c'est jamais une mauvaise chose à mes yeux, puisque des fonctions/classes codées en C seront forcément plus rapides que du code en PHP. Pour illustrer, j'ai fait une source dans ce sens (un truc trop complet, mais en ne prenant qu'une classe et en utilisant un filtre non dynamique comme j'ai fait, ça doit être plus intéressant... Pis si ça peut te donner des idées... : http://www.phpcs.com/codes/LISTING-REPERTOIRE-AVEC-FILTRES_45125.aspx )

Voilà pour l'instant ce que je peux en dire... Mais du coup, ça donne envie d'essayer... Chose que je ferai probablement dès le début de la semaine prochaine. Bon et puis j'en profiterai (quand je serai re-chez moi) pour regarder un peu plus en détail tout ton code.

Commentaire de Morphinof le 20/03/2008 17:59:49

Merci neigedhiver, n'hésite pas à me contacter une fois que tu l'auras testé ^^
Pour le preg_match c'est vrai que c'est plus rapide je me suis posé la question mais bon je pense que le gain de performance est minime sur une chaine de la taille d'un nom de fichier alors j'ai choisi eregi pour faire un peu d'expression régulières :p
Bon oki je sort c'est pas une excuse valable j'aurais du faire un preg_match ^^
J'aime beaucoup la source que tu as posté je vais regarder sa surtout que ma recherche dans les fichiers est loin d'être parfaite ;)

Commentaire de neigedhiver le 20/03/2008 18:29:10

Sur le lien que je t'ai filé, preg_match est plus de 5x plus rapide que ereg... Je trouve que c'est pas négligeable, surtout quand on applique la règle à tous les fichiers d'un répertoire...

Historiquement, les PCRE ont été introduites dans PHP comme extension, donc pas toujours présentes par défaut... L'utilisation de ereg et eregi étaient alors justifiées. Maintenant, elles font partie intégrante de PHP, leur utilisation n'est plus vraiment légitime...
C'est mon point de vue...

Sinon, y'a la fonction glob() qui existe, mais qui ne permet pas l'utilisation d'itérateurs, à moins d'en avoir un ArrayIterator sur le résultat de glob()... Faudrait peut-être faire des benchs pour comparer...
Bon et puis je vais pas polluer les commentaires alors que pour l'instant, je n'ai finalement rien de plus à dire lol

Commentaire de depression le 23/03/2008 18:10:07

Enfin bon après, pour différencier un .js d'un .css, je pense qu'un substr() éventuellement couplé avec strtolower() serait plus rapide...

Commentaire de aKheNathOn le 24/03/2008 12:53:37 10/10

J'ai regardé la démo et non les sources, le résultat est tout simplement génial !

Commentaire de neigedhiver le 24/03/2008 19:00:39

@depression : mais si on veut une application évolutive, on préfèrera utiliser un itérateur avec filtre modifiable dynamiquement... enfin c'que j'en dis...

Commentaire de gxm le 25/03/2008 22:44:11

Bonsoir,

Je viens de télécharger ton code pour essayer de voir ce fabuleux travail que tu as réalisé, mais au démarrage de ce massage s'affiche :

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\program files\easyphp1-8\www\formgenerator-1.0\class\DBM.php on line 6

Sachant que je ne suis pas expert est ce que tu pourrais m'aider.
Merci d'avance.

Commentaire de webdeb le 25/03/2008 23:08:56 8/10

C'est que ton EasyPHP 1.8 tourne en PHP4 au lieu de PHP5 que tu as ce message d'erreur. Il faut donc que tu utilises PHP5. Pour cela, soit tu télécharges et installes EasyPHP 2 ou bien WAMP Server 2 que je te recommande.

++

Commentaire de joelel le 08/05/2008 22:08:36

Salut, j'ai vu la demo de ton générateur de formulaire et je te félicite c'est vraiment bien fait. J'ai juste un problème de débutant: Une fois installé, lorsque j'essaye de rentrer un nom de la base comme "test" ça m'affiche un message d'erreur:
"Une erreur est survenue dans le fichier appellé ou le XML retourné est mal formé"
Bon je pense que l'erreur est qu'il fasse modifier qlqchose dans le fichier class/DBM.php. Peut tu m'aider? merci

Commentaire de Morphinof le 09/05/2008 12:05:41

Hello Joelel !

D'abord l'erreur vien du fait que tu as essayé de te connecter à une base de donnée qui n'existe pas ;)

Ensuite le pourquoi sa bug ? Ben c'est ma faute ^_^ Comme quoi copier coller c'est le mal !

Explication : Pourquoi l'erreur "Une erreur est survenue dans le fichier appellé ou le XML retourné est mal formé" ?

Dans ce cas la c'est "Une erreur est survenue dans le fichier appellé" car voila ce que retourne le fichier en essayant de se connecter à une base qui n'existe pas :

<root><br />

<b>Fatal error</b>:  Access to undeclared static property:  SingletonDBM::$db_name in <b>C:\AtWork\WebDev

\wamp\www\FormGenerator-1.0\class\DBM.php</b> on line <b>70</b><br />

Ooooopsss ^_^
Ligne 70 ? J'accède à une propriété statique non dévlarée ??

if($this->db_res == false){ throw new myException('DB ['.self::$db_name.'] isn\'t in range or don\'t exist');  }

... Ah bah vi ... self::$db_name <---- Voila la faute de copier coller... C'est sur on peu pas accéder à une propriété statique qui n'existe pas :p

Solution : et bien il te suffit de remplacer self::$db_name par $this->db_name et tout fonctionne ^^

Petit détail néanmoins important, il te faut une base de donnée même si tu l'utilise pas pour générer tes formulaires (je sais c'est bête de ma part mais je suis parti sur la base que on allai générer des formulaire à partir d'une base ^^) donc créé en une même vide, tu t'y connecte et c'est parti :)

Commentaire de joelel le 09/05/2008 22:42:38

Merci beaucoup pour le petit conseil. Ca fonctionne maintenant. Bonne continuation.

Commentaire de Morphinof le 11/05/2008 03:19:05

De rien en espérant que ce projet te servira ;) Bonne continuation à toi aussi :)

Commentaire de vernoneure le 14/08/2008 10:54:53

Bonjour tout d'abord superbe travail,

malheureusement je reste bloqué pour l'utilisation.
Comme JOELEL je fut d'abord gêné par le petit problème dans DBM.php
Une fois passé cet écueil je suis confronté à la même erreur à l'étape suivante :
"Une erreur est survenue dans le fichier appellé ou le XML retourné est mal formé"
mais cette fois dans la page dbstructure.php lors que je clique sur le développement de
"Tables de la base de données dbname(nom de ma table pour tester)"
Le fichier DBM.php a été corrigé, il s'agit d'un problème de session a t il perdu la connexion à ma base après le login? je suis plutot débutant en php si une bonne âme pouvait m'aider :)

(je continue de chercher de toute façon un outil pareil je veux le faire fonctionner, précision je suis sous linux)

Commentaire de vernoneure le 14/08/2008 11:35:19

Bon alors j'ai fini par trouver autant pour moi
lors de la connexion a la base (qui existait bien) se faisait correctement, ensuite le problème venait d'un nommage plus que mauvais de mes tables.

mysql acceptant mes noms de tables je ne pensais pas que cela poserait problème.
Une fois mes tables renommées tout fonctionne :)

Merci pour cette outil performant !

Commentaire de vernoneure le 19/08/2008 16:18:48

bon l outil fonctionne mais ne me crée pas le fichier.php lorsque le formulaire est fini.

La dernière action de l'exemple swf "double cliquez sur frm_nomdufichier.php qui affiche ensuite le code ne fonctionne pas sur ma machine (ubuntu mysql apache2 php5).

Le double clique à l'endroit du fichier exemple ne donne rien, je reste donc avec un fichier frm_ qui ne me permet pas d'avancer, car rien ne permet l'écriture des données du formulaire vers ma table mysql.

Si quelqu un pouvait m'aider a comprendre (désolé d être un boulet hein (boléen?) )

Commentaire de Azounet le 20/08/2008 11:14:49

Bonjour,

Ce générateur m'a l'air vraiment excellent.
Je viens de l'essayer mais autant la connexion à la base de données se déroule sans problème autant la liaison du css ou du js est impossible :
FileScanner_scan_FILE_NOT_FOUND

L'install a été faite à partir du zip (donc tout inclus i presume)
Les deux fichiers sélectionnés sont respectivement :
- blabla\FormGenerator-1.0\inc\js\basic_functions.js
- blabla\FormGenerator-1.0\css\style.css

Suis-je donc le seul?  :p

Encore bravo!

Commentaire de htaxil le 27/08/2008 16:01:13

Bonjour,

L'utilitaire a l'air très intéressant.

Je l'ai installé avec un serveur WAMP 2.0 mais je rencontre un problème lorsque je veux afficher la liste des tables de ma base MySQL : Le programme me renvoie une erreur : "Une erreur est survenue dans le fichier appellé ou le XML retourné est mal formé".

D'après les posts précédents, j'ai pu voir qu'une erreur similaire apparaissait lorsqu''on avait un problème de connexion à la base de données, mais le code a été corrigé depuis et il ne me semble pas avoir de problème de connexion.

Auriez-vous une idée de l'origine de cette erreur ?
Faut-il activer certains modules d'Apache ou modifier la config PHP de base ?

Merci
Hubert

Commentaire de htaxil le 27/08/2008 18:20:28

Problème résolu.

Comme vernoneure, le problème était lié au nommage d'une de mes tables : son nom comportait un tiret '-'. En remplaçant ce tiret par un underscore '_' la prophétie s'est accomplie, la liste des tables est apparue.

Cordialement,
Hubert

Commentaire de Morphinof le 28/08/2008 14:48:07

Coucou tout le monde ^^

Effectivement j'ai complètement oublié ce genre d'erreur cf les table avec des "-" dans leur noms xD
Personnellement je ne marche qu'au "_" :p

Je profite de mon furtif passage pour faire un mea-culpa sur l'animation de démo, à la fin quand vous voyez "Double cliquez sur : frm_nom_de_votre_formulaire.php" en fait c'est juste que j'ai ouvert le fichier généré dans le dossier "files" de l'application ^_^

@Azounet : cette exception viens de la classe FileScanner et veut tout simplement dire que le fichier que tu à spécifié est introuvable (peu être du à une erreur de frappe après sélection), en tout cas elle est levée dans ce cas la :
if(!file_exists($file_path)) throw new myException(__CLASS__.'_'.__FUNCTION__.'_FILE_NOT_FOUND');
$file_path étant le chemin spécifié dans le champ file.
Je ne sais pas si sa va t'aider mais je peu malheureusement pas faire mieux.

Commentaire de guismo1er le 25/01/2009 13:15:40

j'ai installé tel quel sur mon serveur sans rien modifier.

Et j'ai cette erreur:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ****/Form/class/DBM.php on line 6

Pourquoi? Que se passe t'il?

Commentaire de guismo1er le 25/01/2009 13:25:06

oups, je viens de voir qu'il fallait mettre en php5

Sous OVH:

Pour changer la version de php qui va exécuter un fichier .php, il suffit de creer un .htaccess dans le repertoire de votre site. Avec le bloc note de Windows ou tout autre éditeur de texte, tapez :



SetEnv PHP_VER 5


Enregistrez ce fichier et uploadez le sur votre ftp dans le répertoire concerné et renommez le en .htaccess. Les fichiers .php seront alors exécutés avec la version 5 de php.

Commentaire de guismo1er le 25/01/2009 13:39:02

Arf :(

Je n'arrive pas à lier les css et le js. avec cette erreur du filescanner.

Que faut il faire?? (mettre un chmod ou quoi?)

sinon j'arrive pas à accéder à ma base, car j'ai une base du type

Serveur: mysql5-11 via TCP/IP

Donc impossible de la renommer. (problèmes avec les tirets)


Que puis je faire pour que ça fonctionne?

- Probleme js/css scan
- pas d'accès à ma table, car "-" dans ma base (et non dans mes tables).


Un grand merci

Commentaire de incas1k le 14/09/2009 09:46:24

Bonjour,
Je me garderai bien de toute critique, n'étant pas en mesure d'en faire autant.
Bravo pour ce travail même s'il y a des imperfections, c'est toujours facile de critiquer , plus difficile à réaliser donc bravo.
J'ai cherché à mettre en oeuvre, la connexion à la base est OK, mais je n'arrive pas à faire les liens avec js et css.
Quelle est l'erreur? Merci pour votre aide.
J'utilise "easyphp" version 2+
J'attends votre réponse avec impatience, car c'est vraiment l'outil que je recherchais.
Merci par avance
Cordialement
Incas

Commentaire de maldone974 le 21/12/2009 18:28:26


Bonjour très bon générateur de formulaire !! impressionant.

J'ai dut renommer tous les fichiers et tous les liens vers les fichiers en .php5

J'ai bloqué dès la connexion à la base de donnée qui est en "failed", blocage contourné en bidouillant le fichier DBM.php.
mon but étant de générer des formulaires, si la connexion à la base ne se fait pas, ce n'est pas si grave, dc me voila devant l'interface et je vous avoue que je bloque à la création des listes déroulantes!!
la méthode script, comment l'utiliser?

Commentaire de ossatueur le 25/01/2010 23:02:36

meme PB FileScanner_scan_FILE_NOT_FOUND

:(

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

un Form dans un Form [ par stailer ] Salut tout le monde !Donc voila mon problème :J'ai un formulaire qui contient notamment un champ et une liste déroulante.Lorsque je valide 1 de ces ch Envoyer un form par mail ! ! ! [ par laubro ] Bonjour,j'ai un formulaire que je voudrais me faire envoyer "par mail", celui-ci contien des champsclassiques : nom prenom adresse......+ 1 case texta pb avec formulaire [ par billy67000 ] Salut, dans mon formulaire je recupere une valeur d'une base de donn&#233;e (MAX(id)): $val = .... mon form est ici &lt;form name="frm_category" act 2 boutons submit dans le meme form? [ par LaurentKOogar ] Bonjour et bon début de week end à tous,ptit problème==&gt;ya 1 formulaire avec 1 champt text et dans ce formulaire il faudrait 2 boutons submit1 bout Problème inclusion form dans un autre form [ par 2swfan ] Bonjour tout le monde&nbsp; !Voila, je dois faire un formulaire d'ajout de cartes g&#233;ographiques. Dans ce formulaire, l'utilisateur saisit le nom, Problème de tests sur l'envoi d'un formulaire [ par seabird ] Salut a tous , J'ai un petit soucis que je n'arrive pas &#224; r&#233;soudre. En effet j'envois un formulaire par mail qui contient plusieurs champs e Générateur de formulaire et base de donnée [ par helphp ] Bonjour &#224; tous,Je suis &#224; la case d&#233;butant pour la programmation. Je suis entrain de construire un site qui aura le r&#233;pertoire de p faire apparaitre un formulaire avec ajax [ par mnoussa ] Bonjour je debute avec ajax et je veux bienen cliquant sur un lien "ajouter utilisateur" faire apparaitre un formulaire de saisie pour inserer les don traitement de plusieurs formulaires sur une seule page php [ par arnold002 ] Bonjour à tous,J'ai un formulaire d'inscription relativement long.Actuellement, l'utilisateur remplit ce formulaire et le valide. Le traitement php se Email avec ajax [ par atchoumen ] Bonjour,J'avais déjà posté un message un peu similaire dont la réponse m'avait convaincu cependant le faite de ne pas trouver de solution à mon proble


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,125 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales