我使用带有mysql和php的数据表来显示记录,我有一个名为"Notes"的列,它可能包含1个或多个换行符(chr(10))。
我正在使用
while( $row=mysqli_fetch_assoc($records) ){......
填写表格和
$('#example tbody').on( 'click', 'tr', function ()......
和
Notes = $('td', this).eq(6).text();
以获取单击行中用于填充编辑对话框的"notes"(和其他)的值。
一切正常。
有人问我是否可以只显示表中注释列的第一行,我已经使用"strpos"answers"substr"完成了这一操作,并且可以
不幸的是,由于编辑对话框从表中获取数据,我现在只得到第一行。。。。。
我想我需要收集整个字段,然后再切掉后面的部分,然后使用这个集合(可能在数组中??)来填充编辑对话框。
恐怕我在这里还是有点"绿色",不确定最好的方法,也不确定如何填充然后访问数组。
谢谢你的帮助。
附加。。。。附加的附加的
谢谢Barmar,这看起来是一个很好的干净的修复,但我还没有。。。。。我添加了CSS和以下代码片段。。
** ListNotes = $('td:nth-child(6) .expanded', this).text();
和php表中的"while loop"
$findme = chr(10);
$pos = strpos($row['ListNotes'], $findme);
$lft = substr($row['ListNotes'], 0, $pos);
....
echo "<td><span class='abbreviated'>".$lft."</span><span class='expanded'>".$row['ListNotes']."</span></td>";
并且如预期的那样显示该表格。
我在Firebug中标记为**的行之后插入了一个break,并且"ListNotes"是一个空字符串(")???我希望它能包含整个字符串,包括任何chr(10)的。我做错什么了吗?
将全文放在隐藏的span:中
<td><span class="abbreviated">First line...</span><span class="expanded">First line<br>Second line<br>Third line</span></td>
带有CSS:
.expanded {
display: none;
}
编辑时,使注释从.expanded
span:展开
var text = $('td:nth-child(6) .expanded', this).text();
编辑后,将缩写和扩展的结果存储回适当的范围:
$('td:nth-child(6) .expanded', this).text(edited_text);
$('td:nth-child(6) .abbreviated', this).text(abbreviated_text);
我刚才想回答自己的问题,但忘了。以下是我解决问题的方法。在表显示中,我有一个显示的列带有截断的字符串,还有一个隐藏的列带有完整的字符串。我在编辑对话框中使用了隐藏列。简单有效。