PHP - 输出正在添加“<br/>”...... Braindead

时间:2012-08-28 21:38:51

标签: php line line-breaks

所以我正在反对这个...我还没有太熟悉PHP,有人让我编辑一个WP插件。

PHP

foreach ($options['forms'][$form_id]['inputs'] as $id => $input) {
        if (!$input['show'])
            continue;
        $val    = '';
        if (isset($_POST[$id])){
            $val    = esc_attr(strip_tags(stripslashes($_POST[$id])));
        }else{
            if( isset($input['value']) ) $val   = esc_attr(strip_tags(stripslashes($input['value'])));
        }

        $error  = ' ';
        if (isset($input['error']) && $input['error']) 
            $error  = ' error ';
        if($input['type'] != 'hidden')
            $content .= "\t".'<div class="sf_input_container_byben"><label class="w2llabel'.$error.$input['type'].'" for="sf_'.$id.'">'.esc_html(stripslashes($input['label'])).':';

        if ($input['required'] && $input['type'] != 'hidden')
            $content .= ' *';

        if($input['type'] != 'hidden')
            $content .= '</label>';

        if ($input['type'] == 'text') {         
            $content .= '<input value="'.$val.'" id="sf_'.$id.'" class="w2linput text" name="'.$id.'" type="text"/></div>';
        } else if ($input['type'] == 'textarea') {
            $content .= '<textarea id="sf_'.$id.'" class="w2linput textarea" name="'.$id.'">'.$val.'</textarea></div>';
        } else if ($input['type'] == 'hidden') {
            $content .= '<input type="hidden" id="sf_'.$id.'" class="w2linput hidden" name="'.$id.'" value="'.$val.'"></div>';
        }
    }

显然这是偏袒的。

所有内容都按预期输出,除了,因为我在每个<br />(结束标记)之后得到</label>。 nl2br在php文件中的任何地方都没有使用。

我错过了什么?如果需要更多信息,我可以直接链接到文件。

HTML输出为:

<div class="sf_input_container_byben">
    <label class="w2llabel text" for="sf_first_name">First name: *</label><br />
    <input value="" id="sf_first_name" class="w2linput text" name="first_name" type="text"/>
</div>

2 个答案:

答案 0 :(得分:0)

通常你可以通过这样做来解决这个问题:

label{display: inline;}

看起来标签的作用类似于块元素,因此将其更改为内联或内联块甚至,它应该停止在末尾添加额外的行。请注意,您可能已经拥有导致标签显示为块的代码,因此请先在css文件中搜索它。

答案 1 :(得分:0)

不是最佳解决方案,但我已经没时间了,所以我在CSS中使用了display: none;来隐藏表单中的<br>元素。

支持保罗将我链接到一个论坛帖子,该论坛帖子涉及一个单独的问题,但提供了解决方案。