占位符通过str_replace添加到

时间:2017-01-27 11:15:55

标签: php forms concrete5

我正在尝试使用tablelessforms插件在concrete5中为表单创建占位符。

到目前为止,我已使表单能够使用以下代码为输入生成占位符。但是,在显示textarea时,函数str_replace不会替换并添加我的占位符。

以下是代码和网站链接:http://79.170.44.138/holidayletmidwales.co.uk/newsite/

<div class="fields">

    <?php  foreach ($questions as $question): ?>
        <div class="field field-<?php  echo $question['type']; ?>">
            <?php if ($question['textarea']) {   
                      $question['textarea'] = str_replace('rows="3"', 'rows="3" placeholder="'.$question['question'].'"', $question['textarea']); 
                    echo $question['textarea'];         
                    } else { 
                       $question['input'] = str_replace('value=""', 'value="" placeholder="'.$question['question'].'"', $question['input']);
                      echo $question['input'];          
                 } ?>       
            </div>  
    <?php  endforeach; ?>

</div><!-- .fields -->

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

当标记为rows="3"时,您正在搜索rows="5"时,查找和替换无效。一个更好的选择,而不是搜索可能改变的属性,将是找到标记的开头,例如, str_replace ('<input', '<input placeholder="foo"', $html)或者,如果可能的话,扩展生成标记的类以根据需要处理占位符。

然而,这有点无关紧要,因为文本区域实际上并不支持占位符。 :)