1

我有这样的功能:

     function textarea(array $attributes){

         if(isset($attributes['name'])){
             $this->name = 'name="'.$attributes['name'].'"';
         }

         if(isset($attributes['id'])){
             $this->id = 'id="'.$attributes['id'].'"';
         }

         if(isset($attributes['class'])){
             $this->class = 'class="'.$attributes['class'].'"';
         }else{
             $this->class = 'class="aisisTextElement"';
         }

         if(isset($attributes['rows'])){
             $this->rows = 'rows="'.$attributes['rows'].'"';
         }

         if(isset($attributes['cols'])){
             $this->cols = 'cols="'.$attributes['cols'].'"';
         }

         if(isset($attributes['value'])){
             $this->value = $attributes['value'];
         }

         if(isset($attributes['style'])){
             $this->style = 'style="'.$attributes['style'].'"';
         }

         $build_aisis_element = "<textarea {$this->id} {$this->class} {$this->name} {$this->disabled}>{$this->value}</textarea>";                   
         echo $build_aisis_element;
     }

并且每次我渲染它时,例如如果值是 Bob 我会得到类似的东西:

bob
<textarea></textarea>

有什么想法吗?

我已经打开了所有 JavaScript,所以我可以 100% 准确地说它不是 js 这样做。

按照要求.....

创建文本区域的位置

function aisis_custom_text(){
    $option = get_option('aisis_core');
    $aisis_form = new AisisForm();

    $aisis_form->create_aisis_form_element('label', array('value'=>'Remove the Mini   Feed(s) from the site?'));
    $aisis_form->create_aisis_form_element('textarea', array(
        'rows'=>50,
        'cols'=>50,
        'name'=>'aisis_core[404_message]',
        'value'=>get_value('404_message')
    ));
}

该值只是通过一种方法获得的

基本上,如果放入 test 然后返回 test 并且文本区域填充有 test

呈现出来的html:

    test<textarea class="aisisTextElement"name="aisis_core[404_message]"rows="50"cols="50"></textarea>
4

1 回答 1

0

最可能的问题是该值包含需要转义的字符。

您可以使用以下方法解决该问题:

     if(isset($attributes['value'])){
         $this->value = htmlspecialchars($attributes['value']);
     }

您输出到 html 并且不应该包含 html(标签)的所有字符串都需要以这种方式进行转义。

于 2012-08-31T20:07:29.147 回答