Парсинг CSV для калькулятора
Помогите плиз с парсингом
делал на php вот так <?php @$file = fopen('price.csv', 'r') or die('Ошибка'); flock($file, 1); echo '<table cellspacing="0" cellpadding="5" border="1" width="100%" id="MyTable">'; echo "\n"; while(!feof($file)) { $Mass = fgetcsv($file, 1024, ';'); $j = count($Mass); if ($j != 1) { echo '<tr align="center">' . "\n"; for ($k=0; $k<$j; $k++) { echo '<td><input type="text" value='. $Mass[$k] . "></td>\n"; } echo "</tr>\n"; } } echo '</table>'; flock($file, 3); // 3 == LOCK_UN fclose($file); ?> но потом не совсем удобно обращаться к содержимому ячейки, приходится вставлять input чтоб корректно получать значения ячеек, пользовался вот этим, например: proj1 = MyTable.rows[1].cells[0].firstChild.value; в итоге на странице появляется огромная таблица с input, которую приходится скрывать. Что хотелось бы, известно общее количество строк и столбцов оно определено, примерно 40 столбцов и 70 строк, они имеют примерный вид и содержимое (разделю для понятности символом | ): Код:
Курс General | 1 | 1 | 240 | 300 | 350 | 400 | и т. д. ... Массивы типа 1: course1 = [Курс General, 1, 1, 240, 300, 350, 400 и т. д. ...] course2 = [Курс Business, 1, 1, 400, 450, 650, 700 и т. д. ...] ... таких массивов будет по количеству строк, т.е. 70, по идее они должны как-то автоматически строится Массивы типа 2 это массив из первого столбца name1 = [Курс general, Курс Business, ... и т.д.] Или лучше из php парсить в строку типа: Курс General, 1, 1, 240, 300, 350, 400 и т. д. ... а потом из нее получать массив? Просто не хочется лишнего мусора на странице Сразу отвечу на вопрос для чего это: Менеджер заполняет определенным образом CSV со стоимостью школ и курсов (там очень сложная таблица с большим количеством параметров) а потом все это превращается в калькулятор стоимости курса |
Цитата:
|
Я хочу распарсить CSV без php, так как редактор режет php код и приходится изворачиваться фреймом
|
Цитата:
|
Цитата:
|
Цитата:
По сабжу. Массив можно получить напрямую, сначала забрав по строкам, потом распарсив по ограничителю (тчк-с-зпт) Но есть одна неприятность, которая всё может усложнить, даже их три: 1. Переводы строк при подготовке csv никто не отменял, блондинка может нафтыкать, тогда строки собьются в кашу 2. и 3. Двоеточия и тчк-с-запятые в тексте - они экранируются, или экранируется вся ячейка - нельзя об этом забывать тоже. Есть же какая-то в пыхе функция - сам разбирает, если правильно настроена локаль и кодировка /*могу наврать!*/ |
Цитата:
|
Цитата:
Кстати, а не проще там, где в инпуте хранится значение просто ячейке давать номер по флагам? Ну как-то <td flag="3_15">значение</td>, что будет соответствовать третьему столбцу, 15 строке? И вообще зачем нам эти инпуты? Пусть php сгенерит json, ява разберет и в путь. |
Serj, может код скинуть присвоения флага и его обработку в дальнейшем.
Кстати, возникла проблемка. что если в поле стоит 2 слово или 3, то они обрезаются и остается только одно, первое |
Axios,
я "пыхер", все делаю на jquery. И как бы $('td').attr('flag', x+'_'y).html() // блин, простите, вечер удался....рулит. Как-то так.... Короче, если есть массив, а таблица не нужна, то гоните всё в json, а там распарсивайте и обрабатывайте. //Давайте не будем писать своих аккордионов, ибо! Есть у меня такой в жизни неудачный пример. сцк, работает, но зачеее-ем! когда библиотека под это уже заточена. зы, куда без него?: да, на жквери! и мутулсе. |
Часовой пояс GMT +3, время: 19:18. |