我正在尝试使用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 -->
非常感谢任何帮助。
答案 0 :(得分:1)
当标记为rows="3"
时,您正在搜索rows="5"
时,查找和替换无效。一个更好的选择,而不是搜索可能改变的属性,将是找到标记的开头,例如, str_replace ('<input', '<input placeholder="foo"', $html)
或者,如果可能的话,扩展生成标记的类以根据需要处理占位符。