0

この問題には 2 つの部分があるので、それらを一緒に説明すると簡単です。だからここに行きます:

  1. これらの要素からデフォルトのデコレータを削除しようとしています。これは、スタイル設定に少し異なる方法を使用しているためです。しかし、私が何をしても、DtDDWrapper は表示されます。すべてのデコレータを削除しようとすると、下のすべてのフィールドが消えます。

    public function newfieldAction() {
    
    
    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('newfield', 'html')->initContext();
    
    
    $id = $this->_getParam('id', null);
    $id1=$id+1;
    $id2=$id+2;
    
    
    $element = new Zend_Form_Element_Text("newTitle$id1");
    $element->setOptions(array('escape'=>false));
    $element->setRequired(true)->setLabel('Vertība')->removeDecorator('label');
    $tinyelement=new Zend_Form_Element_Text("newName$id");
    $tinyelement->setRequired(true)->setOptions(array('escape'=>false))->setLabel('Vertība')->removeDecorator('label');
    $textarea_element = new Zend_Form_Element_Textarea("newText$id2");
    $textarea_element->setRequired(true)->setOptions(array('escape'=>false))->setLabel('Vertība')->removeDecorator('label');
    
    
    $this->view->descriptionField = "<td>".$textarea_element->__toString()."</td>";
    $this->view->titleField = $element->__toString();
    $this->view->field = $tinyelement->__toString();
    $this->view->id=$id;
    }
    
  2. コンテキスト ビュー スクリプトは、何らかの方法で私のコードをトリミングするように縫い付けられています。<td>ビュー スクリプトにまたは<table>タグを挿入しようとすると、タグがスキップされます。このエスケープが起こらないようにする方法はありますか? 私のビュースクリプト:

    <tr class="element<php echo $this->id; ?>">
    asdfasdfasdfasd
    <td><?php echo $this->field ?></td>
    <td><php echo $this->titleField ?></td>
    <td><php echo $this->descriptionField ?></td>
    
    
    <td><a class="remove-element" rel="<php echo $this->id ?>">remove</a></td>
    
    
    </tr>
    

PSコードのフォーマットシステムが私を怒らせています。誰かがコードのフォーマットを手伝ってくれませんか?

4

1 に答える 1

1

デコレータ

少なくとも、ViewHelperデコレータを設定する必要があります。これは、要素自体をレンダリングするものです。

デフォルトのデコレーターを無効にする最も簡単な方法は、オプションを介してデコレーターを設定するかdecoratorsdisableLoadDefaultDecoratorsオプションを false に設定することにより、要素コンストラクターを使用することです (ただし、後でデコレーターを設定する必要があります)。例えば

$element = new Zend_Form_Element_Text("newTitle$id1", array(
    'decorators' => array('ViewHelper')
));

スクリプトを表示

「タグをスキップする」とはどういう意味かを詳しく説明する必要があります。マークアップの場違いな文字列を除けば、asdfasdfasdfasd問題は見当たりません。

これは、AJAX コンテキストをロード/配置している DOM の場所によっても影響を受ける可能性があります。間違った場所にロードしたり、無効なマークアップを作成したりすると、正しく表示されないように見える場合があります。

于 2010-12-22T23:05:08.050 に答える