0

以下のようなフォームhtmlが必要です。

<form>
<div class="es_form_txt">Name</div>
<div class="es_form"><input type="text" value="" class="email1"></div>
<div class="clear1"></div>
<div class="es_form_txt">Gender</div>
<div class="es_form">
    <input type="radio" value="" name=""> Male
    <input type="radio" value="" name=""> Female
    <input type="radio" value="" name=""> Other
</div>
<div class="clear1"></div>
<div class="es_form_txt">Country Code</div>
<div class="es_form"><input type="text" value="" class="email1"></div>
<div class="clear1"></div>
<div class="es_form_txt">Phone</div>
<div class="es_form"><input type="text" value="" class="email1"></div>
<div class="clear1"></div> 
<div class="clear1"></div>
<div class="es_form">&nbsp;</div>
<div class="es_form"><input type="button" class="button" value="Update"></div>
<div class="clear"></div>
</form>

私はここであらゆる種類の解決策を試しましたが機能しませんでした!誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

Zend_Formを使用するときに特定のHTMLを表示する必要がある場合、最も信頼できる解決策は通常、ViewScriptデコレータを使用することです。

Zend_Formを使用して通常のフォームを作成します。

<?php
//application/forms/Search.php
class Application_Form_Search extends Zend_Form
{
    public function init()
    {
        $this->setMethod('POST');
        //assign the view script to the decorator, this can also be done in the controller
        $this->setDecorators(array(
            array('ViewScript', array(
                    'viewScript' => '_searchForm.phtml'
            ))
        ));
        // create new element
        $query = $this->createElement('text', 'query');
        // element options
        $query->setLabel('Search Keywords');
        // add the element to the form
        $this->addElement($query);
        //submit element
        $submit = $this->createElement('submit', 'search');
        $submit->setLabel('Search Site');
        $submit->setDecorators(array('ViewHelper'));
        $this->addElement($submit);
    }
}

次に、フォームのレンダリングに使用される実際のスクリプトを作成します。

<!-- ~/views/scripts/_searchForm.phtml -->
<article class="search">
    <!-- set the action and the method -->
    <form action="<?php echo $this->element->getAction()?>" method="<?php echo $this->element->getMethod()?>">
        <table>
            <tr>
                <!-- you can render individual decorators. -->
                <th><?php echo $this->element->query->renderLabel()?></th>
            </tr>
            <tr>
                <td><?php echo $this->element->query->renderViewHelper()?></td>
            </tr>
            <tr>
                <!-- or you can render a complete element -->
                <td><?php echo $this->element->search?></td>
            </tr>
        </table>
    </form>
</article>

これは現在、次のようにレンダリングされます。

<article class="search">
    <form action="/video/index/display" method="post">
        <table>
            <tr>
                <th>
                    <dt id="query-label">
                        <label for="query" class="optional">Search Keywords</label>
                    </dt>
                </th>
            </tr>
            <tr>
                <td>
                    <input type="text" name="query" id="query" value="" placeholder="Movie Title" size="20">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" name="search" id="search" value="Search Video Collection!">
                </td>
            </tr>
        </table>
    </form>
</article>   

必要な出力を正確に取得するには、いくつかの実験が必要になります。

于 2013-03-01T07:44:42.760 に答える