Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonsoir à tous,
un truc simple :
le code :
$form = new Zend_Form('hotel'); $form->setAction('') ->setName('unhotel') ->setMethod('post'); etc.
Résultat :
<form id="unhotel" enctype="application/x-www-form-urlencoded" action="" method="post">
Pourquoi me met il l'attibut de setName dans ID, et j'ai essayé de paramétrer le 'name' avec setAttrib('name','unhotel') ou bien avec setAttribs(array('name'=>'unhotel')...
Je ne vois plus quoi changer et je ne trouve pas dans la doc un exemple de formulaire dans lequel le paramètre 'name' est positionné...
Hors ligne
J'ai vu cette contribution :
http://framework.zend.com/issues/browse/ZF-4466
Mais le commentaire ne règle pas le problème.
J'ai besoin de nommer un formulaire pour un script et je galère depuis 2 heures. Je perds trop de temps sur des choses qui devraient être triviales.
Pourquoi diable $form->setName('unNom') ne fonctionne pas ?!?
ça va à l'encontre de toute écriture d'un code instinctif.
J'en suis à me demander si j'ai pris la bonne option avec le ZF...
Démoralisé...
Dernière modification par Jean-Marc Rigade (17-11-2008 20:10:02)
Hors ligne
l'attribut 'name' n'a aucun sens dans une balise form.
L'id se voit affecter le nom que tu as donnér à ton élement si tu ne lui donne pas d'id.
si l'id ne te plait pas, passe le en paramètre 'id' => 'monId'
Ton problème n'est pas vraiment le ZF lui même, mais je dirais que tu manques une certaine logique dans la compréhension du but des fonctions, ou bien de lacunes dans le HTML (et CSS ?) (a toi de trouver..)
Dernière modification par nORKy (17-11-2008 21:39:01)
Hors ligne
J'ai modifié mon javascript qui fonctionnait jusque là avec le 'name' de la form pour qu'il marche avec l'ID.
Quoi qu'il en soit, tu as beau donner une valeur à l'ID, il se fout royalement de l'attribut name.
En effet l'attribut name n'est plus utilisé, mais il est toujours pris en compte par le w3c et peut être adressé par le javascript, il a donc encore, un peu, un sens.
D'autre part la doc du ZF reste assez vague là dessus et ce lien : http://framework.zend.com/issues/browse/ZF-4466 que j'ai déjà donné prouve que je ne suis pas le seul connard de la galaxie.
Donc un peu de modestie et de circonspection dans tes réponse seraient bienvenues.
Car en retour, je te donne un petit conseil aussi, essaye l'humilité, juste pour voir, c'est un chemin long, difficile, que l'on espère tous un jour ne pas être le seul à emprunter.
Hors ligne
Rien à voir avec l'humilité. Je te conseil de travaillé avec l'id, c'est tout.
Si tu étais un connard, je te l'aurais dit.
L'attribut 'name' est déprécié et amené à disparaitre. D'ailleurs, en XHTML 1.1 il est invalide. (du moins dans les balises ou il n'a pas d'interet. Il reste dans certaines balises comme param par exemple)
De plus, remplacer un appel getElementByName par un getElementById, je pense que cela est simple à faire.
Si tu as un problème javascript, alors, pose ton problème.
setName est principalement utilisé pour identifier les élements à l'intérieur du ZF
Je cite la doc du ZF que tu as lue :
While a form's usefulness primarily derives from the elements it contains, it can also contain other metadata, such as a name (often used as a unique ID in the HTML markup); ... // Set the name: $form->setName('registration'); // Retrieve the name: $name = $form->getName();
Dernière modification par nORKy (18-11-2008 09:36:27)
Hors ligne
T’énerves pas Jean Marc t’es pas tout seul à pas connaître par cœur la doc par cœur (il faudrait idéalement qu’elle soit ouverte et interactive et d’ailleurs si mes idées encore fumeuse sur la question s’éclaircissent j’en feraient part à la communauté) et puis tu n’es pas tout seul non plus à profiter de ces piqûres de rappel voire de ces cours de NOrky (sur zend_form en particulier) qui malgré son coté bourru parfois est quand même sacrement bon et solidaire de ceux qui le sont un peu moins.
A+
Hors ligne
Hum... un petit message avant qu'on atteigne le point Godwin.
1) Quand on écrit dans un forum, on ne connait pas le mec en face : on ne connait pas son niveau technique, son caractère, son humeur du moment,...
2) Quand on lit un forum, le lecteur ne connait pas non plus le mec qui a écrit (niveau technique, caractère, humeur,...)
Tout ça pour dire que les phrases brutales qui passeraient sans problème dans la vie courante parce qu'on voit la tête du mec en face (ou parce qu'on l'imagine quand on connait le mec) passent assez mal dans un forum public...
Essayez de penser à ça quand vous écrivez un truc dans le forum... Bref il faut : ne pas être blessant et ne pas être susceptible.... je sais, parfois, c'est dur... mais si tous les informaticiens du monde se donnaient la main en chantant "I believe I can fly"....
A+, Philippe
Dernière modification par philippe (18-11-2008 09:57:34)
Hors ligne
J'ai réglé mes problèmes avec du Javascript, mais il y a un truc qui me reste en travers et je veux bien une explication :
J'ai une classe form toute simple, (pas de bouton c'est volontaire) :
class Listedeshotels extends Zend_Form { /** * *@param mixed $options *@return void */ public function __construct ($options = null, array $tabhotels, $valselect) { parent::__construct($options = null); $leshotel = new Zend_Form_Element_Select('leshotels'); $leshotel->addMultiOptions(array('0'=>'Faites un choix')) ->addMultiOptions($tabhotels) ->setAttrib('onchange','envoyerliste()') ->setValue($valselect) ->setRequired(true); $this->setAttrib('id','listehotel'); $this->addElement($leshotel); } /** * */ function __destruct () {} }
Bon elle vaut ce qu'elle vaut, en tout cas ça marche
Mais quand je regarde le code généré :
<form id="listehotel" enctype="application/x-www-form-urlencoded" action="" method="post" name=""> <dl class="zend_form"> <dt> </dt> <dd> <select name="leshotels" id="leshotels" onchange="envoyerliste()"> <option value="0" label="Faites un choix" selected="selected">Faites un choix</option> <option value="2" label="Paris - Le Ritz">Paris - Le Ritz</option> <option value="3" label="Paris - Le Georges V">Paris - Le Georges V</option> <option value="4" label="Paris - Athené">Paris - Athené</option> </select></dd></dl></form>
Pourquoi me génère t-il un attribut 'name' dans la balise <form>, alors que je ne vois pas où je lui demande ça ?!?
Bon ce n'est pas gênant vu que je ne l'utilise plus, mais pour un esprit inférieur comme le mien c'est troublant et la doc qui est devenue mon livre de chevet ne dissipe pas l'interrogation.
Mon doctype est :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Y a t-il un lien avec les attributs générés ?
En conclusion, quand je vois que Zend_Form me génère tout seul un attribut 'name' vide dans la balise <form>, je me suis dit qu'il devait être possible de lui donner une valeur. Sauf qu'en faisant $nomdelaforme->setName('unnom'), l'attribut 'name' disparait.
Ok ça marche comme ça, mais je n'ai pas le génie nécessaire à percevoir la logique de la chose...
Hors ligne
gchau a écrit:
T’énerves pas Jean Marc t’es pas tout seul à pas connaître par cœur la doc par cœur (il faudrait idéalement qu’elle soit ouverte et interactive et d’ailleurs si mes idées encore fumeuse sur la question s’éclaircissent j’en feraient part à la communauté) et puis tu n’es pas tout seul non plus à profiter de ces piqûres de rappel voire de ces cours de NOrky (sur zend_form en particulier) qui malgré son coté bourru parfois est quand même sacrement bon et solidaire de ceux qui le sont un peu moins.
A+
Il n'y a pas de problème avec ça.
Quand je vois une question à laquelle, je peux, ou je crois pouvoir répondre je le fais.
Mais il est parfois difficile de rester calme quand on voit qu'on avance pas, alors que la date de livraison approche et je vous passe le reste, les factures, les impôts, les taxes, les enfants, ma femme, mais vous avez sûrement tout ça aussi ! Veinards...
Hors ligne
j'ai pris ton codé que j'ai collé dans le mien et voici le résultat :
<form id="listehotel" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <dt> </dt> <dd> <select name="leshotels" id="leshotels" onchange="envoyerliste()"> <option value="O" label="Faites un choix">Faites un choix</option> </select></dd></dl></form>
Donc, très bonne question oui.
Comment un attrib qu'on ne passe pas peut-il apparaitre ?
Quel version du framework as tu ?
Le doctype n'a rien à voir avec le ZF et le ZF ne réagit pas en fonction du DOCTYPE.
Hors ligne
Je suis en version 1.6.2 et toi ?
Hors ligne
J'ai testé 1.7.0 (sorti hier, le site n'est pas à jour, mais si tu vas sur la page de téléchargement, c'est la 1.7.0)
en 1.6.2 et 1.6.1 et je n'ai pas d'attrib name.
désolé de ne pas avoir d'explications
Hors ligne
nORKy a écrit:
J'ai testé 1.7.0 (sorti hier, le site n'est pas à jour, mais si tu vas sur la page de téléchargement, c'est la 1.7.0)
en 1.6.2 et 1.6.1 et je n'ai pas d'attrib name.
désolé de ne pas avoir d'explications
Je vais essayer en passant à la 1.7.0.
Sinon j'ai activé Dojo sur mes views, tu penses que ça peut jouer ?
Je vais créer un projet vierge et faire simplement un formulaire pour voir.
J'aimerais vraiment comprendre d'où vient le problème.
Si je te zippe le code, il n'y a pas grand chose dedans pour le moment, tu pourrais jeter un œil ?
Aujourd'hui je n'ai pas trop de temps, je vais à Nantes pour une présentation Windev et Webdev de PC-Soft, mais si tu es ok je fais ça dés que possible.
Hors ligne
oui, tu peux me le zipper, pas de problème.
Je n'utilise pas Dojo, donc, je ne peux pas te dire si il peux modifier les attributs.
Hors ligne
Hello,
Vous oubliez peut-être l'helper de vue Doctype. S'il est paramétré dans le bootpstrap comme prévu dans la doc. Il influence le rendu des éléments suivant sa méthode isXhtml().
A+
Hors ligne
oui, mais un grep dans le code du ZF m'indique les changements suivant (en gros, j'ai pas tout noté)
- En XHTML le code des commentaire change '<!--' en '<![CDATA[ '
- La fermeture des élements HTML de '>' en ' />'
Je n'ai rien trouvé qui pourrait pertuber la balise name à cause de isXhtml
Hors ligne
mikaelkael a écrit:
Hello,
Vous oubliez peut-être l'helper de vue Doctype. S'il est paramétré dans le bootpstrap comme prévu dans la doc. Il influence le rendu des éléments suivant sa méthode isXhtml().
A+
C'est peut être une piste.
Voici mon initView :
public function initView() { $view = new Zend_View(); Zend_Dojo::enableView($view); $doctypeHelper = new Zend_View_Helper_Doctype(); $doctypeHelper->doctype('XHTML1_TRANSITIONAL'); $view->setEncoding("UTF-8"); Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view); Zend_Layout::startMvc(); }
Bon je vais finir par être en retard moi, et je veux garder mes points de permis...
Hors ligne
Vous oubliez peut-être l'helper de vue Doctype. S'il est paramétré dans le bootpstrap comme prévu dans la doc. Il influence le rendu des éléments suivant sa méthode isXhtml().
J'allais le dire, car j'ai failli me faire avoir aussi.
C'est tout de même bien fait ce ZF
Hors ligne
Mr.MoOx a écrit:
C'est tout de même bien fait ce ZF
Je râle, mais je suis séduit par le ZF et je me rends compte du chemin qui me reste à faire pour maîtriser, même un peu, la totalité du truc.
Ceci dit j'ai vu que Rasmus Lerdorf, lui, ne jurait que par CodeIgniter
Mais j'ai déjà du mal avec un seul Framework...
Hors ligne
Surtout ne change pas, sinon tu ne t'en sortira jamais
C'est vrai que c'est compliqué à maitriser, moi-même qui semble avoir des réponses à des questions, je tourne souvent encore en rond.
Mais avec le temps, ca commence à devenir intuitif..
N'oublie pas que le ZF est très maléable et que si par exemple tu galères trop avec les ZForm et que tu n'as que peux de temps, rien ne t'empêche de faire toi-même tes forms "à l'ancienne".
Hors ligne
Jean-Marc,
Je ne te cache pas que j'ai aussi un soucis avec des champs qui changent si tu actives dojo dans tes forms mais c'est surtout des formulaires qui fonctionnent en 1.6.2 ne fonctionnent plus en 1.7.0 (les libellés des boutons disparaissent) pourtant je suis bien passé à dojo 1.2.1.
Je suis en train de faire un projet test avec presque rien pour voir.
Je vais donc voir si le doctype change des choses ou pas mais normalement il est bien configuré dans mon projet.
Hors ligne
Hello,
nORKy a raison le doctype n'influence que les fermetures de tags '/>' et les commentaires.
A+
Hors ligne
Je ne peux aider personne pour Dojo.
Par contre, je test en ce moment ZendX_JQuery, et il manque des choses dans la doc.
Par exemple, pour utiliser datePicker et tous les helper pour les formulaires, il ne faut pas décorer l'élement avec viewHelper, mais avec UiWidgetElement.
Hors ligne
mikaelkael a écrit:
Hello,
nORKy a raison le doctype n'influence que les fermetures de tags '/>' et les commentaires.
A+
En effet j'ai retiré les doctype du bootstrap et j'ai toujours un 'name' vide dans les formulaires.
J'ai créé un projet vierge sans fioritures ni Dojo, et dans ce cas, pas de problème, pas de name généré.
C'est vrai que je pourrais faire mes formulaires à l'ancienne, comme je le faisais avant que ZF ne connaisse le Zend_Form.
Mon but c'est d'aller vite, mais justement Zend_Form, quand on sait s'en servir fait gagner du temps.
Et je ne désespère pas d'y parvenir pour ça entre autre.
Hors ligne
Pages: 1