我正在使用codeigniter生成一个html表,以便插入到模板视图中。不幸的是,这是一行中的一个非常长的字符串,如:
<table id="myDataTable" class="table table-bordered table-striped" style="clear: both"><tbody><tr><td>id</td><td><a href="#" id="id" data-type="text" data-pk="2" data-url="/post" data-title="id">2</a></td></tr><tr><td>email</td><td><a href="#" id="email" data-type="text" data-pk="2" data-url="/post" data-title="email">A@B.COM</a></td></tr><br><tr><td>notes</td><td><a href="#" id="notes" data-type="text" data-pk="2" data-url="/post" data-title="notes">notes go here</a></td></tr><br> ...
我希望它看起来更像:
<tr>
<td>field1</td>
<td><a href="#" id="field1" data-type="select" data-pk="1" data-value="" data-original-title="Select field1"></a></td>
<td><span class="muted">Select, loaded from js array. Custom display</span></td>
</tr>
<tr>
<td>field2</td>
<td><a href="#" id="field2" data-type="select" data-pk="1" data-value="" data-original-title="Select field2"></a></td>
<td><span class="muted">Select, loaded from js array. Custom display</span></td>
</tr>
这是我的代码:
$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both"><tbody>';
foreach ($array as $key => $value) {
$string=$string."<tr><td>$key</td>";
$element='<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td></tr>'."<br>";
$string=$string.$element;
}
$string=$string.'</tbody></table>';
我该如何解决这个问题?
答案 0 :(得分:2)
您可以在\n
变量中添加换行符(\t
)和标签$string
)。
E.g:
$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both">\n\t<tbody>\n';
foreach ($array as $key => $value) {
$string = $string."<tr>\n\t<td>$key</td>\n";
$element = '\t<td><a href="#" id="'.$key.'" data-type="text" data-pk="'
.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'
.'</td>\n</tr>'."<br>";
$string = $string.$element;
}
$string=$string.'\n\t</tbody>\n</table>';
答案 1 :(得分:1)
您可以在循环中使用\n
和\t
个字符。
例如:
$string=$string."<tr>\n\t<td>$key</td>\n";
$element='\t<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td>\n</tr>'."<br>";
此外,您不应在</tr>
之后换行。
答案 2 :(得分:0)
您必须使用\ n和\ t为标签添加换行符
$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both">\n\t<tbody>\n';
foreach ($array as $key => $value) {
$string=$string."\t\t<tr><td>$key</td>\n";
$element='\t\t<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td></tr>\n';
$string=$string.$element;
}
$string=$string.'\t</tbody>\n</table>';
另外br tag不允许直接在表内,所以我删除了它。它不会起任何作用,因为行会自动出现在新行上
答案 3 :(得分:0)
您可以将\n
和\t
的换行符添加到$string
变量中:
$string='<table id="myDataTable" class="table table-bordered table-striped" style="clear: both">\n\t<tbody>\n';
foreach ($array as $key => $value) {
$string=$string."\t\t<tr><td>$key</td>\n";
$element='\t\t<td><a href="#" id="'.$key.'" data-type="text" data-pk="'.$rowID.'" data-url="/post" data-title="'.$key.'">'.$value.'</a>'.'</td></tr>\n'."<br>";
$string=$string.$element;
}
答案 4 :(得分:0)
我建议在回声中尝试使用\ n和空格,例如:
$string=$string."<tr>\n <td>$key</td>";
我相信结果将是:
<tr>
<td>field1</td>
编辑:迈克尔使用\ t和\ n的回答更好。