L'ajout de Datepicker de Jquery dans un Zend forme
Im nouveau à Zend framework, je voudrais savoir comment ajouter un sélecteur de date widget jquery pour un zend_form j'ai googlé largement, mais ne pouvait pas trouver quelque chose de précis
De bien vouloir m'aider. Merci à l'avance!
Qui suit est mon Zend_form code
Le code du formulaire
<?php
class Application_Form_Matriregistrationform extends Zend_Form
{
public $elementDecorators = array(
'ViewHelper',
'Errors',
array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
array('Label', array('tag' => 'td')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
);
public $buttonDecorators = array(
'ViewHelper',
array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')),
array(array('label' => 'HtmlTag'), array('tag' => 'td', 'placement' => 'prepend')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
);
public function init()
{
$this->setAction('/matri/public/matri/matri')
->setMethod('post');
$id = $this->addElement('hidden', 'id', array(
'decorators' => $this->elementDecorators,
));
$email = new Zend_Form_Element_Text('username');
$email->setLabel('Username')
->addFilter('StringToLower')
->setRequired(true)
->addValidator('NotEmpty', true)
->addValidator('EmailAddress')
->setDecorators($this->elementDecorators);
$this->addElement($email);
$password = new Zend_Form_Element_Password('password');
$password->setLabel('Password:')
->setRequired(true)
->setDecorators($this->elementDecorators);
$this->addElement($password);
$confpassword = new Zend_Form_Element_Password('confpassword');
$confpassword->setLabel('Confirm Password:')
->setRequired(true)
->setDecorators($this->elementDecorators)
->addValidator(new Zend_Validate_Identical($_POST['password']));
$this->addElement($confpassword);
$name = $this->addElement('text', 'firstname', array(
'decorators' => $this->elementDecorators,
'label' => 'Name:',
));
$this->addElement('datePicker','movie_release_date', array(
'label' => 'Release Date:',
'required'=> false
)
);
$gender2 = new Zend_Form_Element_Radio('gender');
$gender2->setSeparator('')
->setLabel('Gender:')
->setRequired(true)
->addMultiOption('m', 'Male')
->addMultiOption('f', 'Female')
->setDecorators($this->elementDecorators);
$this->addElement($gender2);
$DOB = $this->addElement('text', 'DOB', array(
'decorators' => $this->elementDecorators,
'label' =>'Date of Birth:',
));
$religion = $this->addElement('text', 'religion', array(
'decorators' => $this->elementDecorators,
'label' =>'Religion:',
));
$mothertongue = $this->addElement('text', 'mothertongue', array(
'decorators' => $this->elementDecorators,
'label' =>'Mother Tongue:',
));
$country = $this->addElement('text', 'country', array(
'decorators' => $this->elementDecorators,
'label' =>'Country:',
));
$maritalstatus = $this->addElement('text', 'maritalstatus', array(
'decorators' => $this->elementDecorators,
'label' =>'Marital Status:',
));
$height = $this->addElement('text', 'height', array(
'decorators' => $this->elementDecorators,
'label' =>'Height:',
));
$caste = $this->addElement('text', 'caste', array(
'decorators' => $this->elementDecorators,
'label' =>'Caste:',
));
$smoke = $this->addElement('text', 'smoke', array(
'decorators' => $this->elementDecorators,
'label' =>'Smoke:',
));
$smoke = new Zend_Form_Element_Radio('smoke');
$smoke->setSeparator('')
->setLabel('Smoke:')
->setRequired(true)
->addMultiOption('yes', 'Yes')
->addMultiOption('no', 'No')
->setDecorators($this->elementDecorators);
$this->addElement($smoke);
$drink = new Zend_Form_Element_Radio('drink');
$drink->setSeparator('')
->setLabel('Drink:')
->setRequired(true)
->addMultiOption('yes', 'Yes')
->addMultiOption('no', 'No')
->setDecorators($this->elementDecorators);
$this->addElement($drink);
$diet = new Zend_Form_Element_Radio('diet');
$diet->setSeparator('')
->setLabel('diet:')
->setRequired(true)
->addMultiOption('yes', 'Yes')
->addMultiOption('no', 'No')
->setDecorators($this->elementDecorators);
$this->addElement($diet);
$country = $this->addElement('text', 'country', array(
'decorators' => $this->elementDecorators,
'label' =>'Country:',
));
$state = $this->addElement('text', 'state', array(
'decorators' => $this->elementDecorators,
'label' =>'State of Residence:',
));
$city = $this->addElement('text', 'city', array(
'decorators' => $this->elementDecorators,
'label' =>'City of Residence:',
));
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton')
->setDecorators($this->buttonDecorators);
$this->addElement($submit);
//$this->addElements(array($id, $username, $firstname, $lastname, $submit));
}
public function loadDefaultDecorators()
{
$this->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'table')),
'Form',
));
}
}
Forme de code action
public function matriAction()
{
// $this->_helper->layout->disableLayout();
$form = new Application_Form_Matriregistrationform();
$form->submit->setLabel('Profile Registration');
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
echo 'Form Successfully sumbitted!';
exit;
} else {
$form->populate($formData);
}
}
$this->view->form = $form;
}
OriginalL'auteur Vikram | 2011-02-02
Vous devez vous connecter pour publier un commentaire.
Un autre moyen serait d'utiliser ZendX_jQuery. L'autre moyen serait de le faire manuellement comme vous le feriez pour toute autre forme.
Pour la méthode manuelle, vous devez inclure jquery et jquery ui dans votre code HTML de la balise head, par exemple
Ensuite, vous pouvez ajouter le code JavaScript suivant dans votre code html:
Tout d'abord, cependant, je vous recommande d'avoir regarder ZendX_jQuery. La raison pour laquelle je donne un exemple de la manière manuelle, c'est que je n'ai pas encore essayé de le faire à l'aide de ZendX_jQuery.
ZendX_jQuery
. Je fais toujours le manuel de la façon décrite par @Marcin.La meilleure solution et simple pour l'intégration Jquery est facilement expliqué dans zendcasts.com/working-with-zendx_jquery/2010/07
ressemble ZendX_jQuery lien est rompu. Est-il toujours disponible? Ne peut pas trouver plus.
OriginalL'auteur Marcin
Si vous souhaitez utiliser ZendX suivez ces étapes faciles:
Télécharger l'intégralité du Zend Framework bibliothèque, et copier Zendx de "extras" dans le Dossier de votre Dossier de bibliothèque.
Ajouter à votre application.ini pour utiliser ZendX:
À l'utilisation de JQuery UI, vous pouvez le récupérer à partir de google cdn en ajoutant cette ligne à votre demande.ini
Et maintenant il suffit d'ajouter le Datepicker à l'intérieur de votre Zend Classe de la Forme:
Ehmm désolé, vous devez faire l'écho de l'Jquery choses de votre point de vue/mise en page: "echo $this->jQuery()->activer();" Mais iam vous ne savez pas si vous pouvez utiliser ses propres décorateurs.
J'ai essayé ta suggestion, mais le datepicker n'apparaît pas. La commande "echo $this->xxx" j'ai ajouté dans mon viewscript
OriginalL'auteur opHASnoNAME
Vous avez besoin pour ajouter une classe à l'datePicker champ pour jquery pour crochet. Je ne sais pas si mon exemple ci-dessus est correct comme j'ai l'habitude d'utiliser les éléments suivants setAttrib méthode comme suit.
OriginalL'auteur user466764