рендеринг элементов формы zend оставляет пробел перед

Когда я вручную повторяю zend_form_elements (созданный посредством создания формы из файла ini), кажется, что перед фактическим элементом остается некоторый пробел, и я не могу понять, что вызывает это или как это исправить. Направление справа налево кстати. Скриншот лучше всего описывает то, что я имею в виду: (Поля с 1 по 5 являются элементами формы после удаления декоратора меток)

http://i52.tinypic.com/orqbkz.jpg

Вот php-код:

$templateElems = '<ol id=elemlist><li>'.$removeButton.'</li>';
        foreach ($elements as $elem){
        /*  $elem->label_style='';*/
            $elem->setLabel('');
            $elem->removeDecorator('label');
            $templateElems = $templateElems.'<li>'.$elem.'</li>';
            $table =  $table.'<th>'.$elem->getName().'</th>';

Я был бы очень признателен, если бы кто-нибудь мог хотя бы сказать мне, что вызывает эти пробелы. Заранее спасибо! Вот HTML по запросу:

   <input type=hidden id=oldnum name=num value=0></input>
<input type=hidden id=newnum name=num value=0></input>
<ol id=elemlist>
<li><img src="/images/delete.png" id=remitem name="remitem"></img></li>
<li><dd id="name-element"><input type="text" name="name" id="name" value=""></dd></li><li><dd id="text1-element"><input type="text" name="text1" id="text1" value=""></dd></li><li><dd id="text2-element"><input type="text" name="text2" id="text2" value=""></dd></li><li><dd id="num1-element"><input type="text" name="num1" id="num1" value=""></dd></li>
</ol>
<table id=items border="0" cellspacing="1" cellpadding="0" class="list">
<tr><th>Remove Item</th><th>name</th><th>text1</th><th>text2</th><th>num1</th></tr>
</table>
<button id=addnew type="button">הוסף פריט</button></fieldset>
<dt id="submit-label">&#160;</dt><dd id="submit-element">
    <input type="submit" name="submit" id="submit" value="שלח"></dd></form></div>   
        <!--// End CONTENT-->

person Anorflame    schedule 22.03.2011    source источник
comment
Привет, вы можете добавить сгенерированный HTML вашей формы?   -  person strauberry    schedule 22.03.2011
comment
Похоже, в вашем выходном HTML-коде отсутствуют строки тела (те, что с <td>s) для таблицы. Что с ними случилось?   -  person glomad    schedule 22.03.2011
comment
Они не отсутствуют, они добавляются, когда пользователь нажимает кнопку «Добавить новый» — он запускает jquery, который выполняет итерацию по списку, оборачивает каждый элемент в теги td, все они — в tr и добавляет строку в таблицу. Я не указал эту часть, потому что, когда я увидел, что результат php-скрипта имеет эти пробелы, я пришел к выводу, что это не имеет ничего общего с javascript-частью. Извините за недопонимание...   -  person Anorflame    schedule 22.03.2011


Ответы (1)


Я бы установил декораторы следующим образом: $elem->setDecorators(array('ViewHelper','Errors'));

эта строка удалит теги, созданные вокруг вашего текстового поля, и удалит пробелы.

person Atef    schedule 23.03.2011
comment
Я подумал об этом, и, вероятно, именно это я и сделаю в конце концов, если не найду другого решения. Проблема в том, что в этом случае я вообще не смогу использовать декораторы. - person Anorflame; 24.03.2011
comment
хм, в этом случае установите тег dd в вашем файле CSS, чтобы он не имел полей или отступов. - person Atef; 25.03.2011
comment
вот так: дд { поля: 0; заполнение: 0; } - person Atef; 25.03.2011
comment
Привет, спасибо за вашу помощь и извините, что так долго не отвечал с результатами. Я проверил CSS по умолчанию на наличие тегов dd, и там появилось следующее свойство: -webkit-margin-start: 40px; Я изменил его на 0, и теперь все в порядке. - person Anorflame; 14.05.2011