GÉNÉRATION/GESTION DE FORMULAIRE VIA FICHIER XML

cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009 - 3 janv. 2009 à 21:28
safae890 Messages postés 4 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 24 juin 2013 - 18 mai 2011 à 18:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48878-generation-gestion-de-formulaire-via-fichier-xml

safae890 Messages postés 4 Date d'inscription dimanche 4 mai 2008 Statut Membre Dernière intervention 24 juin 2013
18 mai 2011 à 18:33
s'il vous plait j'ai besoin de ce même code en asp.net si quelqu'un peut m'aider c'est urgent
cs_Seven Messages postés 39 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 13 juillet 2009
13 juil. 2009 à 21:57
Merci Garno pour ta source, elle est fort intéressante ! mais je ne comprends pas pourquoi lorsque qu'on fait un foreach du $_POST :

foreach($_POST as $key=>$val) {
echo $allfields .= $key.'='.$val.'
';
}

cela m'affiche des doublons !!!!
Utilisateur anonyme
6 févr. 2009 à 13:50
Je trouve le travail et le script super bien faits. Dommage que cette source soit notée que seulement 5/10.

Up
Phoenix Messages postés 14 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 11:14
C'est difficil sans zip ... ou peut-on le télécharger ?

Merci
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
14 janv. 2009 à 00:46
En fait, cela veut dire que le formulaire est valide et que tu peux exécuter le code que tu veux exécuter lorsque le formulaire est envoyé et valide. Je donnais l'exemple d'une requête SQL mais tu peux faire absolument n'importeq quoi !

N'hésite pas a me poser plus de question soit en privé ou ici !

Bonne soirée
hihi92i Messages postés 1 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 17:44
Désolé, je ne suis pas initié mais ce code m'interèsse je sais pas si tu as un peu de temps a perdre avec mes questions...

"Le formulaire est valide, on peut maintenant procéder a l\'enregistrement', 5,"
Faut-il déjà avoir une base sql déjà créé pour que ce dernier fonctionne?

En faite j'ai beaucoup de mal à comprendre tes commentaires...
Merci par avance
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
8 janv. 2009 à 18:37
@MFCBAA : Je n'ai pas tester le script sur EasyPHP mais tout semble fonctionner correctement sur un serveur "normal". EasyPHP est selon moi très capricieux. Donc tes problèmes sont réglés ? Sinon envoi moi un message privé je vais tenter de t'aider aux meilleures de mes connaissances.

@LUDOVICHI : Pour aligner correctement le formulaire il faudrait le jumeler a un système de template. Je vais rajouter une fonction getCodeWithTemplate() (ou kkch comme ça) afin de t'aider.
ludovichi Messages postés 7 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 10:55
je viens de passer la variable allow_call_time_pass_reference a true dans le php.ini cela fonctionne maintenant ;)
par contre question comment je peux faire afin de faire des formulaires propres en alignant correctement les champs du formulaire ? car je ne maitrise pas trop le css :(
ludovichi Messages postés 7 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 10:02
ok je vais tester directement sur le serveur alors :) merci
mfcbaa Messages postés 9 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 09:44
Bonjour,

J'ai eu egalement plein de PB avec EasyPHP. J'ai installé Xamp et la plus de BP, ou presque ;)
ludovichi Messages postés 7 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 09:40
bonjour,
j'ai voulu tester ce script et j'obtiens les erreurs suivantes avec easyphp :(
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in D:\Site\XMLForm\lib\xml.form.php on line 53
a quoi cela est du ?
merci d'avance car ce script à l'air génial
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
7 janv. 2009 à 20:55
Voila c'est réglé ! Désolé ;)
mfcbaa Messages postés 9 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 8 janvier 2009
7 janv. 2009 à 20:48
Re salut,

Visiblement il manque le fichier 'lib/ctl.mysql.php'

A+
mfcbaa Messages postés 9 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 8 janvier 2009
7 janv. 2009 à 20:38
Merci, je vais regarder.

Pour les idées tu peux aussi gérer des champs date et heure.

A+
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
7 janv. 2009 à 20:16
@MFCBAA : Voila, la mise a jour est faite pour ce qui concerne la gestion d'un Combobox avec MySQL. Je compte rajouté dans la prochaine version une gestion d'évènement. C'est-a-dire que je veux pouvoir changer le contenue d'un combobox lorsqu'un autre est modifier. Par exemple lors de la sélection d'un pays je veux que le combobox "province" se remplisse de toute les provinces du pays choisi.

Si vous avez d'autres commentaires n'hésitez pas !
mfcbaa Messages postés 9 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 8 janvier 2009
7 janv. 2009 à 08:56
Bonjour,

J'ai testé hier soir et ça à l'air pas mal. Je cherche des sources pour gérer des formulaires facile et rapide à metre en place pour la gestion d'une base de données (le mien est encore très incomplet par rapport à ton travail). J'attend la suite comme tu l'annonce, entre autre l'interface avec une base MySQL.

Bon courage.
A+
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
5 janv. 2009 à 18:59
Oups ! Petite erreur de ma part. J'ai cru que l'avatar avec le petit bonhomme vert était tous la même personne donc j'ai adressé ma réponse seulement a une personne en particulier alors qu'elle répondait a 3. Désolé !
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
5 janv. 2009 à 18:54
@5prpali : Merci des commentaires, je sais que la source est encore a sa base. La véritable version, (celle que j'utilise dans mes projets) est lié avec un système de template + mysql (pour la récupération automatique des valeurs a afficher dans un Combobox Ex: Liste des utilisateurs). Pour ce qui est des étapes c'est une très bonne idée que je vais mettre en place ! Pour l'affichage de texte c'est aussi un très bon point. En fait j'ai créé cette source pour mes besoins du moment qui n'était peut-être pas aussi demandant que les tiens mais tu me fais penser a beaucoup de chose pour améliorer ma source donc merci ! Je m'y remet ;) Quand tu dis "Il manque lib/ctl.error.php et lib/xml.form.php pour tester correctement." est-ce toujours le cas car je viens de télécharger le fichier .zip et ils sont bel et bien inclus ?

@guismo1er : Je sais qu'il manque certain type de champ car je n'ai pas eu a les utiliser pour le moment donc je ne m'y suis pas attarder. Par contre je vais y travailler. Même chose pour les restrictions sur les champs.
cs_5prpali Messages postés 5 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 28 février 2010
5 janv. 2009 à 18:29
Il manque lib/ctl.error.php et lib/xml.form.php pour tester correctement.
J'ai développé un FrameWork XSLT pour réaliser la mise en forme à partir d'un fichier formulaire en XHTML/XML. Cela rend l'application moins dépendante du langage (j'ai testé avec PHP, JAVA et NET). Pour les contrôles je préfère le JavaScript, avec éventuellement de l'ajax sur du onBlur à une vérification générale sur un POST.

5prpali
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
5 janv. 2009 à 09:10
Salut !

Plutôt intéressant !
J'ai développé il y a quelques mois un système similaire. Je trouve qu'il manque quelque chose d'important dans ton XML : les actions !
D'expérience, les formulaire servent rarement à afficher leur contenu dans des pages HTML ! la plupart du temps, c'est pour enregistrée en base de donnée ou envoyer des mails.
Du coup, j'ai mis en place des formulaires en étapes (et non en section ...) et pour chaque étape des actions (vérification, enregistrement, mail ...).
J'ai aussi rajouté en plus des vérifications php en ajax (pour les passages à l'étape suivante) une pré vérification en javascript (grace à des regex) ! ça permet de valider instantanément le champ si les données sont valides (vert / rouge).

un exemple de form xml (la syntaxe est pas aussi jolie ... mais c'est plus court) :

<?xml version="1.0" encoding="UTF-8"?>
<formulaire>
<etape num='1'>
<label>Nom</label>
<label>Mail</label>
<label>Message</label>
<label></label>

<val>Nom,Mail,Message,Date</val>
<val>Mail</val>

</etape>
<etape num='2'>
<txt>Message enregistré</txt>
</etape>
</formulaire>

Pour expliquer, à l'étape 1, j'affiche 4 champs.
Lors de la validation (si tous les champs sont OK), de fait les 3 action : insertion dans la base de donnée (avec les paramêtres), j'envoi le form par mail à l'adresse indiquée, et je vais à l'étape 2 !
A l'étape 2, j'affiche juste le texte "Message enregistré".

L'idée de tout ça, c'est que le formulaire soit vraiment autonome !
Parmis les champs, j'ai donc la possibilité aussi d'afficher du texte (en plus des inputs)

Voilà !
Si ça peut te donner des idées ....

A+
Nico
cs_emilia123 Messages postés 122 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 5 janvier 2009
5 janv. 2009 à 06:06
bonjour,

un point qui pourrait être pas mal serait la liaison de votre code avec un template.
Ayant le nom des variables, il devrait être facile de préparer un template style:
<form...>
Nom : ###usr_lastname###

Prénom: ###usr_firstname###

</form>

ceci en utilisant l'attribut "name" des noeuds "input" de votre XML.
la fonction objform->getcode('chemin_du_ficher_template') pourrait alors parcourir ce template à la recherche des balises type "###" + nom des inputs + "###" et remplacer par le résultat des getcode ce chaque inputs.
ceci éviterait d'avoir du code de présentation dans votre lib obj.form.php, et de devoir reprendre ce fichier à chaque fois que vous désirez rajouter des éléments dans le HTML généré.

Courage.
EM.
cs_guismo1er Messages postés 76 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 12 mars 2009
4 janv. 2009 à 22:36
Aurais je trouvé un code source enfin intéressant pour la validation des formulaires.

Ca m'a l'air très simple comme utilisation.

tu pourrais rajouter le champ file (upload)/ captchas / enabled-disabled / mot de passe / radio

pour vérification: nombres caractères. vérification quand on retape le mot de passe

Un truc qui serait génial, tu fais une version ajax et ce serait formidable!! :)

voilà mon avis
jmlucienvb Messages postés 129 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 12 février 2009
4 janv. 2009 à 10:28
Ce code m'intéresse et je vais l'essayer - merci
JM
cs_Garno Messages postés 36 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 14 janvier 2009
3 janv. 2009 à 21:28
Bon .. je ne semble pas pouvoir ajouter de fichier ZIP car je tombe toujours sur une page d'erreur je vais le mettre en lien externe via ma DropBox.

https://dl.getdropbox.com/u/66067/XMLForm.zip
Rejoignez-nous