Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 14h42   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2004
Messages : 25
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 25
Points : 13
Points : 13
Par défaut decorators: ID d'une ligne d'un tableau

Bonjour,

j'ai créé un formulaire avec la paire label/champ de saisie placée dans une ligne d'un tableau.
Je dois maintenant afficher/cacher ces lignes en ajax selon des valeurs sélectionnées mais je n'ai pas d'ID pour mes lignes mais uniquement pour mes cellules (TD).

Voici mon code (simplifié):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
	public $elementDecorators = array(
        'ViewHelper',
        'Errors',
	array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'editform')),
	array('Label', array('tag' => 'td')),
	array(array('row' => 'HtmlTag'), array('tag' => 'tr','id'=>'Label')));
...
$this->addElement('text','row1',
		array('label'=>'row1 *:',
				'filters'=>array('StripTags','StringTrim'),
				'decorators'=>$this->elementDecorators,
				'required'=>true));
L'HTML généré:
Code :
1
2
3
4
5
6
7
8
9
...
<tr>
<td id="row1-label">
<label class="required" for="row1">Ligne 1 *:</label>
</td>
<td class="editform">
<input id="row1" type="text" value="xxxxx" name="row1">
</td>
</tr>
Il me faudrait simplement rajouter un id="row1-line" pour obtenir <td id="row1-line"> ou tout autre chose me permettant de l'afficher ou le cacher par javascript mais je n'arrive pas à trouver un moyen...

Merci pour votre aide.
bedford est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 14h18   #2
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 158
Points : 291
Points : 291
Bonjour,

Je ne suis vraiment pas sûr de comprendre... j'ai testé ton code en local, et j'ai un id "Label" sur le tr, il te suffirait donc logiquement de changer "Label" par ce que tu veux mettre.

Ensuite tu dis que tu veux mettre un id "row1-line" sur tes td, or précédemment tu parlais plutôt du tr, du coup difficile de cerner ta demande ?

Ceci dit pour résoudre ton problème :
* Si tu as besoin de mettre un id sur le tr, ta ligne
Code :
array(array('row' => 'HtmlTag'), array('tag' => 'tr','id'=>'Label'))
marche très bien, il faut juste remplacer 'Label' par l'id que tu veux.
* Si tu as besoin de mettre un id sur le td qui contient le champ texte, il suffit de changer légèrement la ligne avec le td data pour lui passer l'id :
Code :
array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'editform', 'id' => 'row1-line')),
En faisant la modif j'obtiens en HTML, avec ZF 1.11.7 et un input un peu différent :
Code :
1
2
3
<tr id="Label"><td id="test-label"><label for="test" class="optional">field</label></td> 
<td id="row1-line" class="editform"> 
<input type="text" name="test" id="test" value=""></td></tr>
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web