2015-06-25 2 views
-1

Я использую datatables с mysql и php для отображения записей, и у меня есть столбец с названием «Заметки», который может содержать 1 или более строк новой строки (chr (10)).Как сохранить строку и отобразить только ее часть

Я использую

while($row=mysqli_fetch_assoc($records)){...... 

заполнить таблицу и

$('#example tbody').on('click', 'tr', function()...... 

и

Notes = $('td', this).eq(6).text(); 

, чтобы получить значение 'ноты' (и другие) в щелкнул строке для заполнения диалогового окна редактирования.

Все работает нормально.

меня спросили, если это возможно, чтобы отобразить только первую строку столбца примечаний в таблице, которую я сделал с помощью «StrPos» и «SUBSTR» и это нормально

К сожалению, потому что диалог редактирования получает это данные из таблицы. Теперь я получаю только первую строку .....

Я предполагаю, что мне нужно собрать все поле, прежде чем я отрублю обратно бит, а затем воспользуюсь этой коллекцией (возможно, в массиве ?) для заполнения диалогового окна редактирования.

Боюсь, что я все еще немного «зеленый» здесь и не уверен в лучшем подходе или как заполнить, а затем получить доступ к массиву.

Спасибо за любую помощь.

Дополнительно .... Дополнительно .... Дополнительно ....

Благодаря Barmar, это выглядит как хороший чистый исправить, но я еще не там ..... я добавил CSS и следующий фрагменты кода ..

** ListNotes = $('td:nth-child(6) .expanded', this).text(); 

и внутри PHP таблицы «в то время как петля»

$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 после строки, помеченной **, а «ListNotes» - пустая строка («») ??? Я надеялся, что он будет содержать всю строку, включая любые chr (10). Я сделал что-то не так?

+0

Не могли бы вы добавить еще какой-нибудь код, возможно, включить изображение того, что вы сейчас делаете, vs expected – depperm

+1

Вы можете просто скрыть текст, сделав часть текста, которую вы хотите скрывать, в классе css, видимый. Таким образом, он все еще существует, и вы можете сделать его видимым, если хотите. –

+0

Сбивание с толку: «Меня спросили, можно ли отображать только первую строку». , , 'Теперь я получаю только первую строку '. Вам нужна первая строка, и вы получаете первую строку, так что в чем проблема? –

ответ

0

Поместите полный текст в скрытом пролете:

<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 пролете:

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); 
+0

Я надеялся использовать этот «Добавить комментарий» для дальнейших указаний, однако есть максимальное допустимое количество символов, поэтому я последую этому с 2 дополнительными комментариями. –

+0

Спасибо, 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); ... .... эхо "<пролет класс = 'сокращенно'>" $ LFT "<промежуток класс = 'расширить'>" $ строки [ 'ListNotes'] "". и таблица отображается как ожидалось. –

+0

Я положил перерыв в Firebug после строки, помеченной **, а «ListNotes» - пустая строка («») ??? Я надеялся, что он будет содержать всю строку, включая любые chr (10). Я сделал что-то не так? –

0

Я хотел ответить на свой вопрос некоторое время назад, но забыл. Вот как я это решил. На дисплее таблицы у меня был 1 столбец с усеченной строкой и 1 скрытый столбец с полной строкой. Я использовал скрытый столбец для диалога редактирования. Простой и эффективный.

Смежные вопросы