Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Добавка полей формы в таблице
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Добавка полей формы в таблице

Страниц (2): [1] 2 »
 

1. Tyoma5891 - 13 Апреля, 2014 - 17:33:30 - перейти к сообщению
Добрый день всем!
Возник такой вопрос есть таблица в ней форма и яваскрипт который добавляет при нажатии кнопки строки в таблице с полями формы....
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <head>
  3. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  4. <script type="text/javascript">
  5. var cnt = 2;
  6.     $(document).ready(function(){
  7.         // Add new row
  8.         $('.add-button').click(function(event){
  9.             event.preventDefault();
  10.             var line = $('#parameters_1').html();
  11.             var expr = /del_[0-9]+/;
  12.             var newline = line.replace(expr, 'del_'+cnt);
  13.             $('.parameters-table').append('<tr class="parameters" id="parameters_'+cnt+'">'+newline+'</tr>');
  14.             cnt++;
  15.         });
  16.     });
  17.  
  18.     // Delete row
  19.     function deleteRow(btn_id){
  20.         var del_id = btn_id.split('_');
  21.         $('#parameters_'+del_id[1]).remove();
  22.     }
  23. </script>
  24. </head>
  25. <form action="" method="post">
  26. <table class="parameters-table">
  27.     <tr>
  28.         <th>Type</th>
  29.         <th>Depth</th>
  30.         <th>Width</th>
  31.         <th>Height</th>
  32.         <th>Quantity</th>
  33.         <th></th>
  34.     </tr>
  35.     <tr class="parameters" id="parameters_1">
  36.         <td>
  37.             <select name="type[]">
  38.                 <option value="type_1">Type 1</option>
  39.                 <option value="type_2">Type 2</option>
  40.                 <option value="type_3">Type 3</option>
  41.                 <option value="type_4">Type 4</option>
  42.             </select>
  43.         </td>
  44.         <td>
  45.             <select name="depth[]">
  46.                 <option value="1">1 mm</option>
  47.                 <option value="2">2 mm</option>
  48.                 <option value="3">3 mm</option>
  49.                 <option value="4">4 mm</option>
  50.             </select>
  51.         </td>
  52.         <td>
  53.             <input type="text" name="width[]" value=""/>
  54.         </td>
  55.         <td>
  56.             <input type="text" name="height[]" value=""/>
  57.         </td>
  58.         <td>
  59.             <input type="text" name="quant[]" value=""/>
  60.         </td>
  61.         <td>
  62.             <button type="button" class="del-button" id="del_1" onclick="deleteRow(this.id); return false;">Delete</button>
  63.         </td>
  64.     </tr>
  65. </table>
  66. <p>
  67.     <button class="add-button">Add row</button>
  68. </p>
  69. <p>
  70.     <input type="submit" value="Send form"/>
  71. </p>
  72. </form>
  73.  

каким образом можно отфильтровать селекты при последующем нажатии кнопки доьавить, тоесть чтобы добавлялись и отображались только обычные ячейки с инпутами...
2. Tyoma5891 - 14 Апреля, 2014 - 09:44:35 - перейти к сообщению
Что никто не сталкивался с подобным?
3. 3d_killer - 14 Апреля, 2014 - 09:53:04 - перейти к сообщению
Tyoma5891 пишет:
каким образом можно отфильтровать селекты при последующем нажатии кнопки доьавить, тоесть чтобы добавлялись и отображались только обычные ячейки с инпутами

ну по вопросу я ниче не понял что нужно сделать:
отфильтровать селекты (список) что бы отображались простые ячейки с инпутами, не представляю что это значит, я так думаю и никто кто просматривал не понял в чем состоит задача, вот и не отвечает никто
4. Tyoma5891 - 14 Апреля, 2014 - 10:11:40 - перейти к сообщению
3d_killer пишет:
Tyoma5891 пишет:
каким образом можно отфильтровать селекты при последующем нажатии кнопки доьавить, тоесть чтобы добавлялись и отображались только обычные ячейки с инпутами

ну по вопросу я ниче не понял что нужно сделать:
отфильтровать селекты (список) что бы отображались простые ячейки с инпутами, не представляю что это значит, я так думаю и никто кто просматривал не понял в чем состоит задача, вот и не отвечает никто


В приложении картинка так выглядит форма. Сейчас при нажатии кнопки добавить добавляется вся строка тип, толщина и т..да мне нужно чтобы при нажатии кнопки добавить сейчас добавлялось только поля ширина высота и количтсево ну и кнопка удалить для каждого ряда, посмотрите код страницы высше что я привел...
5. 3d_killer - 14 Апреля, 2014 - 10:21:14 - перейти к сообщению
думаю проще будет добавить так а потом две секции опустошить
6. Tyoma5891 - 14 Апреля, 2014 - 10:26:34 - перейти к сообщению
3d_killer пишет:
думаю проще будет добавить так а потом две секции опустошить

а как это сделать не могли бы продемонстрировать в коде?
7. 3d_killer - 14 Апреля, 2014 - 10:38:40 - перейти к сообщению
ну во первых тут класс например добавить
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <td class='first'>
  3.             <select name="type[]">
  4.                 <option value="type_1">Type 1</option>
  5.                 <option value="type_2">Type 2</option>
  6.                 <option value="type_3">Type 3</option>
  7.                 <option value="type_4">Type 4</option>
  8.             </select>
  9.         </td>
  10.         <td  class='second'>
  11.             <select name="depth[]">
  12.                 <option value="1">1 mm</option>
  13.                 <option value="2">2 mm</option>
  14.                 <option value="3">3 mm</option>
  15.                 <option value="4">4 mm</option>
  16.             </select>
  17.         </td>
  18.  

а в скрипте после этой строки:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('.parameters-table').append('<tr class="parameters" id="parameters_'+cnt+'">'+newline+'</tr>');
  3.  

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $("#parameters_'+cnt+'").children('first').html('');
  3. $("#parameters_'+cnt+'").children('second').html('');
  4.  

вроде так, не проверял
8. Tyoma5891 - 14 Апреля, 2014 - 10:57:54 - перейти к сообщению
не работает...
9. LIME - 14 Апреля, 2014 - 11:01:40 - перейти к сообщению
потому что в кавычках селекторов бардак
10. Tyoma5891 - 14 Апреля, 2014 - 11:06:31 - перейти к сообщению
LIME пишет:
потому что в кавычках селекторов бардак

хм..не могли бы более конкретнее...?
11. 3d_killer - 14 Апреля, 2014 - 11:16:28 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $("#parameters_"+cnt).children('.first').html('');
  3. $("#parameters_"+cnt).children('.second').html('');
  4.  
12. LIME - 14 Апреля, 2014 - 11:16:36 - перейти к сообщению
да ну бред вообще
а стелефона код не напишу
13. 3d_killer - 14 Апреля, 2014 - 11:17:11 - перейти к сообщению
не обратил внимание разные кавычки поставил
(Добавление)
и это замени
CODE (javascript):
скопировать код в буфер обмена
  1.  $('.add-button').click(function(event){

на это
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('click','.add-button',function(event){
14. LIME - 14 Апреля, 2014 - 11:19:58 - перейти к сообщению
3d_killer если уж удалять то давать одинаковый класс для select и remove()
(Добавление)
а on для чего?
(Добавление)
$("#parameters_"+cnt+" .removeClass").remove();
15. 3d_killer - 14 Апреля, 2014 - 11:36:25 - перейти к сообщению
На вновь созданные объекты или не отрабатывает функция иил отрабатывает но не во всех браузерах, что то такое.
раньше существовала функция live или life потом разработчики заменили ее на on (по оф документации jquery она более оптимизирована что ли)
(Добавление)
LIME пишет:
("#parameters_"+cnt+" .removeClass").remove();

а при таком раскладе удалит td элементы и табличка будет выглядеть не эстетично по сравнению с другими

 

Powered by ExBB FM 1.0 RC1