所以我正在反对这个...我还没有太熟悉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>
答案 0 :(得分:0)
通常你可以通过这样做来解决这个问题:
label{display: inline;}
看起来标签的作用类似于块元素,因此将其更改为内联或内联块甚至,它应该停止在末尾添加额外的行。请注意,您可能已经拥有导致标签显示为块的代码,因此请先在css文件中搜索它。
答案 1 :(得分:0)
不是最佳解决方案,但我已经没时间了,所以我在CSS中使用了display: none;
来隐藏表单中的<br>
元素。
支持保罗将我链接到一个论坛帖子,该论坛帖子涉及一个单独的问题,但提供了解决方案。