Nexus,
ну если для такой, то слишком много. :) Если по уму и тип должен определять клиент, то: <html> <head> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <style> .field:first-child .del { display: none; } </style> <script type="text/javascript"> $(function() { $('#add').click(function() { $('div.field').first() .clone() .appendTo('form') .find('input,select').val('') .end() .find('a').click(function() { $(this).parent().remove() }) }); $('form').submit(function(e) { e.preventDefault(); //.... }) }); </script> </head> <body> <form> <div class="field"> <div class="col_left"> <div class="border"> <input type="text" name="tag[]" required="" value="" placeholder="TAG" /> </div> </div> <div class="col_centr"> <div class="border"> <input type="text" name="tag_name[]" required="" value="" placeholder="Название поля" /> </div> </div> <div class="col_right"> <div class="border"> <select required="" name="tag_template[]"> <option value="">Выберите</option> <option value="1">Текстовое</option> <option value="2">Числовое с переводом числа в текст</option> <option value="3">Срок исполнения</option> </select> </div> </div> <a class="del">Удалить</a> <div class="clear"></div> </div> <button>Send</button> </form> <a id="add">Добавить</a> </body> </html> |
laimas, я сегодня Вас не понимаю :)
Цитата:
|
Nexus,
именно "количество", автору то всего надо клонировать и добавить. :) А "громоздкость" его кода из-за пагубного представления, что field_name_1, field_name_2, это удобно. |
laimas,
Это то что нужно ))) До этого я не работал с передачей массива через input. На сервере обрабатываю так: $count = count($_POST['tag'])-1; for($i=0;$i<=$count;$i++) { $tag[$i]['tag'] = $_POST['tag'][$i]; $tag[$i]['tag_name'] = $_POST['tag_name'][$i]; $tag[$i]['tag_template'] = $_POST['tag_template'][$i]; } |
skitskis, можно так:
for($i=0;$i<count($_POST['tag']);$i++) <?php for($i=0;$i<count($_POST['tag']);$i++){ $tag[$i]=array(); foreach(array('tag','tag_name','tag_template') as $key) $tag[$i][$key]=isset($_POST[$key][$i])?htmlspecialchars($_POST[$key][$i]):null; } |
Цитата:
|
laimas,
я еще это добавляю в сессию, так как у меня есть еще другие поля, и если они не заполнены, мне нужно потом подставить обратно уже заполненные, ну а после уже добавить в базу данных значения. По другому я не знаю как )) |
Цитата:
Я не знаю чего еще не заполнено (единственное что можно предположить, это не знаем ID новой записи, но это иной вопрос), но если добавление данных, это этапы, то значит на каждом из них требуется проверка, которую вы обязаны делать - проверка обязательного заполнения, истинность данных (соответствие каждого из наборов). И таковую проверку просто сделать без явных циклов, для этого в РНР масса функций для работы с массивами. А коли запись в базу, то гораздо полезнее будет подготовить из наборов полей данные для каждой строки в sql-таблице, в которые они будут вставлены. А делается это опять таки просто: $data = array_map(null, $_POST['tag'], $_POST['tag_name'], $_POST['tag_template']); Но после того как данные будут проверены и не будет выявлено ошибок. |
laimas,
я понял, спасибо ) |
Nexus,
htmlspecialchars - не надо этого, вредное занятие при записи в базу. |
Часовой пояс GMT +3, время: 21:26. |