Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Требуется перезапись отредактированной таблицы (https://javascript.ru/forum/server/58183-trebuetsya-perezapis-otredaktirovannojj-tablicy.html)

dee3000 09.09.2015 00:24

Цитата:

Сообщение от laimas (Сообщение 387657)
Ну это не то. А хранить все таки лучше только данные, а не таблицу.

а если данных ну очень много? в смысле это прайс на более 1000 наименований, как его хранить?

рони 09.09.2015 00:44

Цитата:

Сообщение от dee3000
добавляется перенос строки в верху перед текстом

может так попробовать
var content = $.trim($('#editable').html());

если конечно дело не в php ...

laimas 09.09.2015 02:03

Цитата:

Сообщение от рони
если ТС сможет выцепить изменения

Да не проблема :)

//данные таблицы
$table = [
    ['aaaa aaaa aaaa', 'bbb bbb bbb', 'ccc ccc ccc'],
    ['aaaa aaaa <b></b> aaaa <strong></strong>', 'bbb bbb bbb', 'ccc ccc <b></b> ccc'],
    ['aaaa <em></em> aaaa aaaa', '<b></b> bbb bbb bbb', 'ccc ccc ccc']
];

//редактируемые данные, только их изменяем/сохраняем 
$data = [
    1=>[['AAAAA', 'BBBBB'], 2=>['CCCCC']],
    2=>[['DDDDD'], ['EEEEE']]
];

//если вывод для редактирования, то форма
$edit = 1;

//вывод таблицы
$tbl = '<table border=1><tr>' . implode('</tr><tr>', array_map(function($k, $v) use($data, $edit) {
    if($data[$k]) {
        foreach($data[$k] as $n=>$d) {
            preg_match_all("/(<[^>]+>)(<\/[^>]+>)/U", $v[$n], $a);
            foreach($a[0] as $j=>$m) $v[$n] = preg_replace("#$m#", $a[1][$j] . 
                ($edit ? '<input name="data['.$k.']['.$n.']" value="'.htmlspecialchars($d[$j]).'">' : $d[$j]) . 
                $a[2][$j], $v[$n], 1);
        } 
    }
    
    return '<td>' . implode('</td><td>', $v) . '</td>';
}, array_keys($table), $table)) . '</tr></table>';

echo $tbl;

laimas 09.09.2015 02:07

Цитата:

Сообщение от dee3000
а если данных ну очень много? в смысле это прайс на более 1000 наименований, как его хранить?

1000, это не много. Более того, редактирование цен, уж извините, это редактирование параметров, но никак не контента. А вывод таблицы, так это описание товаров со всеми их параметрами, а уж какие поля может кто-то изменять, это уже совсем иной вопрос.

Вы что-то все в кучу смешали.

dee3000 09.09.2015 11:54

рони
Большое спасибо помогло

dee3000 09.09.2015 11:56

Цитата:

Сообщение от laimas (Сообщение 387710)
1000, это не много. Более того, редактирование цен, уж извините, это редактирование параметров, но никак не контента. А вывод таблицы, так это описание товаров со всеми их параметрами, а уж какие поля может кто-то изменять, это уже совсем иной вопрос.

Вы что-то все в кучу смешали.

Ну так потому что я глупый человек. По этому задаю вопросы на форуме, был бы умный уже отвечал бы на такие вопросы.

laimas 09.09.2015 13:41

Цитата:

Сообщение от dee3000
Ну так потому что я глупый человек.


Вряд ли. Вот только представление о прейскуранте какое-то непонятное.
Товары в базе, это их описание, типа артикул, наименование, производитель, цена. Кто, все ли, если не все, то какие параметры товара может изменять, отношения к прейскуранту не имеет, это вопросы администрирования данных.
А вот получение самого прейскуранта, так это получение товаров в базе, всех или только некоторых их полей, и вывод в необходимом формате - html-таблица, excel, pdf. Щелкать в нем и править необходимости нет. Иначе это не прейскурант, а нечто иное.

dee3000 09.09.2015 17:17

Цитата:

Сообщение от laimas
Вот только представление о прейскуранте какое-то непонятное.

Я вас понимаю и Вы абсолютно правы.
но дело в том что у одного, скажем товара много условий для цены. Чем делать таблицу с большим количеством полей, и потом изобретать сложные запросы и работать с массивами, мне гораздо проще так как я уже сделал и работает ))) В любом случае большущее спасибо за Ваши ответы, это бесценный опыт для меня!

laimas 09.09.2015 18:29

Цитата:

Сообщение от dee3000
но дело в том что у одного, скажем товара много условий для цены.

У товара не может быть условий для цены, условия это торг, там да. А у вас цена, а на ее могут влиять какие либо доп. характеристики товара. А их также не сложно описать и связать с товаром, а значит и просчитать цену.

Делайте как считаете нужным, но так не поступают, ни дай бог что-то слегка изменить придется, и вам придется править все ваши грабли.


Часовой пояс GMT +3, время: 21:11.