сколько я мучался с это задачкой ))) так до конца и не решил, так я еще процедурным стилем решал. А нужно функционалкой было. Где то на гитхабе есть решение функциональным стилем, то ли на 600 строк то ли на 800.... думаю вот так просто за тебя вряд ли кто то сделает, ну разве что по доброте душевной и от скуки
Если нет совсем никаких мыслей, то тут разговаривать не о чем. Если есть, то можно помочь (но не сделать за тебя). Что видится тебе самым сложным?
Разбейте задачу на подзадачи: 1. По отдельному элементу этого массива, описывающему ячейку сформируйте тег td. 1.1. Если необходимо, организуйте проверку могут ли быть объеденены указанные ячейки 1.2. Определите "координаты" начала полученной ячейки (строку и колонку). 1.3. Можно занести ее в двумерный массив. строка и колонка как индексы, а в качестве значения html 2. Если необходимо проверьте и заполните пустыми td ячейки которые остались не описанными (с учетом объединения) 3. На основании двумерного массива выведите таблицу Может есть и более правильные алгоритмы, но этот пришел в голову первым.
Имеется два файла у меня index.php: <?php include_once 'ArrayBuilder.php'; ?> <!DOCTYPE html> <html> <head> <title>Test Task</title> <meta charset="UTF-8"> </head> <body> <div> <table> <tr> <th>text</th> <th>cells</th> <th>align</th> <th>valign</th> <th>color</th> <th>bgcolor</th> </tr> <?php $ArrayBuilder = new ArrayBuilder(); if (isset($_POST['insert'])){ $ArrayBuilder->addParams(); $ArrayBuilder->printParamsAsTable(); } $ArrayBuilder->addParameter(); ?> </table> </div> </body> </html> ----------------------------------------------------------------------------------------------------------------------------------------- ArrayBuilder.php <?php class ArrayBuilder{ public static $array = array(array()); function addParams(){ $tmpArr = array($_POST['text'],$_POST['cells'], $_POST['align'], $_POST['valign'], $_POST['color'], $_POST['bgcolor']); $tmpsize = sizeof(self::$array); self::$array = array_pad(self::$array, $tmpsize+1, array()); self::$array[$tmpsize-1] = $tmpArr; } function printParamsAsTable(){ $size = sizeof(self::$array); for ($i = 0; $i<$size; $i++){ echo "<form method = 'POST' action = 'index.php>' <tr>"; foreach (self::$array[$i] as $key => $value) { echo "<td><input type = 'text' name = {$key} value = {$value}></td>"; } echo "<td><button name = 'update' type = 'submit'>Update</button></td> <td><button name = 'delete' type = 'submit'>Delete</button></td> </tr> </form>"; } } function addParameter(){ echo" <form method = 'POST' action = 'index.php'> <tr> <td><input type = 'text' name = 'text'></td> <td><input type = 'text' name = 'cells'></td> <td><input type = 'text' name = 'align'></td> <td><input type = 'text' name = 'valign'></td> <td><input type = 'text' name = 'color'></td> <td><input type = 'text' name = 'bgcolor'></td> <td><button name = 'insert' type = 'submit'>Insert</button></td> </tr> </form>"; } } ?> Почему когда я нажимаю на кнопку insert массив не увеличивается
Вот там вот возле B I U да да вот прям немного выше на тем где ты пишешь есть тег code. Им нужно обрамлять весь код
То есть мне нужно весь метод обрамить тегом код? или можете скопировать и вставить, если не затруднит
Просто ctrl+c ctrl+v, держите файлы, если угодно и поможете --- Добавлено --- Пока ваш ответ видится самым адекватным, проблема сейчас такая, не могу по нажатию кнопки увеличить массив и, к сожалению, с js не особо дружу
Хм... и действительно... @TillTheDayIDie, вам пытались сказать, что бы вы проявили уважение ко времени отвечающих. На всех форумах по программированию листинги принято обрамлять спец. тегами для форматирования кода. Для это не надо помнить эти теги. Над полем ввода (где вы вводите сообщения здесь) есть панель первая кнопка "</>" служит как раз для вставки необходимых тегов. Вам остается только между них (при помощи указанных выше комбинаций) вставить необходимый для темы код. Это не блаж и не заскоки отдельных пользователей. Это норма на форумах по программированию.