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 » » Вопросы новичков » Динамическое добавление ячеек

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

1. Demeus - 08 Августа, 2011 - 18:45:25 - перейти к сообщению
Привет!
У меня есть html таблица примерно такого содержания
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <table>
  3.         <tr>
  4.         <form action='/admin/updateprice/' method='post' >
  5.         <td><span class="rowNumber">1</span></td>
  6.         <td><input type="text" name="name" value="Иванов" /></td>
  7.         <td><input type="text" name="age"  value="21" /></td>
  8.         <td>
  9.                 <input type="hidden" name='id_page'  value='1' />
  10.                 <input type="submit" class="saveRow" value="Save" />
  11.         </form>
  12.         </tr>
  13. <table>
  14.  

И я хочу сделать кнопку добавить, чтоб при нажатии ее появлялись новые ячейки.
Использовал плагин jquery.table.addrow.js
он добавляет все ячейки, но но добавляет скрытые поля и тег form
Посоветуйте как это исправить, или может есть более лучший вариант решить эту проблему?
2. SAD - 08 Августа, 2011 - 19:24:42 - перейти к сообщению
не использовать плагин, а самому написать скрипт)
3. Demeus - 08 Августа, 2011 - 21:10:35 - перейти к сообщению
Подскажите хоть куда копать, jquery я мало знаю.
4. illy - 08 Августа, 2011 - 21:50:11 - перейти к сообщению
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script>
  3. n=2;
  4. function add_row(){
  5. document.getElementById('add').innerHTML+='<br>'+n+' <input type=text name=name'+n+'> <input type=text name=age'+n+'>';
  6. n++;
  7. }
  8. </script>
  9.  
  10. <table>
  11. <form id=forma action=admin/updateprice method=post>
  12. <tr>
  13. <td id=add class=rowNumber>1
  14. <input type=text name=name1 value=Иванов>
  15. <input type=text name=age1  value=21><td valign=top>
  16. <input type=hidden name=id_page  value=1>
  17. <input type=submit class=saveRow value=Save>
  18. </td>
  19. </form>
  20. <table>
  21. <br><a href='javascript:add_row()'>Добавить</a>
  22.  
5. SAD - 08 Августа, 2011 - 21:54:32 - перейти к сообщению
как то так
CODE (html):
скопировать код в буфер обмена
  1. <script>
  2. $(function() {
  3.     $('#addRow').unbind('click').bind('click', function() {
  4.         var $tr = $('<tr/>')
  5.                       .append('<td><span class="rowNumber">'+(parseInt($('#table span.rowNumber:last').text())+1)+'</span></td>')
  6.                       .append('<td><input type="text" name="name" value="" /></td>')
  7.                       .append('<td><input type="text" name="age" value="" /></td>');
  8.         $('#table').append($tr);
  9.     });
  10. });
  11. </script>
  12. <form action='/admin/updateprice/' method='post' >
  13.     <table id="table">
  14.         <tr>
  15.             <td><span class="rowNumber">1</span></td>
  16.             <td><input type="text" name="name" value="Иванов" /></td>
  17.             <td><input type="text" name="age"  value="21" /></td>
  18.         </tr>
  19.     </table>
  20.     <input type="hidden" name='id_page'  value='1' />
  21.     <input type="submit" class="saveRow" value="Save" />
  22. </form>
  23.            
  24. <input type="button" value="addrow" id="addRow">


я правда не знаю, в каком виде вы это хотите, и что вы в принципе потом хотите
6. Demeus - 09 Августа, 2011 - 13:47:17 - перейти к сообщению
Пишу так
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script src="http://code.jquery.com/jquery-latest.js"></script>
  3. <script>
  4. $(function() {
  5. $('#addRow').unbind('click').bind('click', function() {
  6. var $tr = $('<tr/>')
  7.   .append('<form enctype=\"multipart/form-data\" action=\"/admin/updateprice/\" method=\"post\" >')
  8.   .append('<td><span class="rowNumber">'+(parseInt($('#table span.rowNumber:last').text())+1)+'</span></td>')
  9.   .append('<td><input type="text" name="name" value="sss" /></td>')
  10.   .append('<td><input type="text" name="age" value="" /></td></form>');
  11. $('#table').append($tr);
  12. });
  13. });
  14. </script>
  15.  
  16.  
  17. <table id="table">
  18. <tr>
  19. <td><span class="rowNumber">1</span></td>
  20. <td><input type="text" name="name" value="Иванов" /></td>
  21. <td><input type="text" name="age"  value="21" /></td>
  22. </tr>
  23. </table>
  24.  
  25. <input type="hidden" name='id_page'  value='1' />
  26. <input type="submit" class="saveRow" value="Save" />    
  27. <input type="button" value="addrow" id="addRow">
  28.  


но на выходе получаю так
CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="/admin/updateprice/" enctype="multipart/form-data"></form>

и соответственно не могу сохранить результат, где убрать закрытие тега </form>
7. SAD - 09 Августа, 2011 - 13:53:06 - перейти к сообщению
давайте вы начнете с самого начала, и скажите из какого в какой вид должна преобразоваться форма, после нажатия кнопки добавить
8. Demeus - 09 Августа, 2011 - 13:59:08 - перейти к сообщению
По умолчанию таблица грузится так
CODE (html):
скопировать код в буфер обмена
  1.  
  2.     <table id="table">
  3.         <form enctype="multipart/form-data" action="/admin/updateprice/" method="post" >
  4.         <tr>
  5.             <td><span class="rowNumber">1</span></td>
  6.             <td><input type="text" name="name" value="Иванов" /></td>
  7.             <td><input type="text" name="age"  value="" />
  8.  <input type="hidden" name='id_page'  value='1' />
  9. </td>
  10.         </tr>
  11.         </form>
  12.     </table>
  13. <input type="button" value="addrow" id="addRow">  
  14.  

При нажптии добавить мне надо вставить после </tr> такой код
CODE (html):
скопировать код в буфер обмена
  1.  
  2.         <form enctype="multipart/form-data" action="/admin/updateprice/" method="post" >
  3.         <tr>
  4.             <td><span class="rowNumber">2</span></td>
  5.             <td><input type="text" name="name" value="" /></td>
  6.             <td><input type="text" name="age"  value="2" /></td>
  7.         </tr>
  8.         </form>
  9.  
9. SAD - 09 Августа, 2011 - 14:06:13 - перейти к сообщению
так неправильно делать, в одной форме должны быть все инпуты.
воспользуйтесь тем способом, который я написал
10. Demeus - 09 Августа, 2011 - 15:09:27 - перейти к сообщению
сделал я как написано выше
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. print_r($_POST);
  4. ?>
  5. <div class='prodlist'>
  6.                          <script src="http://code.jquery.com/jquery-latest.js"></script>
  7. <script src="http://code.jquery.com/jquery-latest.js"></script>
  8. <script>
  9. $(function() {
  10.     $('#addRow').unbind('click').bind('click', function() {
  11.         var $tr = $('<tr/>')
  12.                       .append('<td><span class="rowNumber">'+(parseInt($('#table span.rowNumber:last').text())+1)+'</span></td>')
  13.                       .append('<td><input type="text" name="name" value="" /></td>')
  14.                       .append('<td><input type="text" name="age" value="" /></td>');
  15.         $('#table').append($tr);
  16.     });
  17. });
  18. </script>
  19. <form method='post' >
  20.     <table id="table">
  21.         <tr>
  22.             <td><span class="rowNumber">1</span></td>
  23.             <td><input type="text" name="name" value="Иванов" /></td>
  24.             <td><input type="text" name="age"  value="21" /></td>
  25.         </tr>
  26.     </table>
  27.     <input type="hidden" name='id_page'  value='1' />
  28.     <input type="submit" class="saveRow" value="Save" />
  29. </form>
  30.            
  31. <input type="button" value="addrow" id="addRow">
  32.  

но print_r($_POST); выводит только последнею запись
11. SAD - 09 Августа, 2011 - 15:13:36 - перейти к сообщению
там нужно так, не name="name", а name="name[]"
тоже самое и с age
12. Demeus - 09 Августа, 2011 - 15:25:34 - перейти к сообщению
ну да точноУлыбка но хотелось бы сделать кнопку сохранить для каждой строки, чтоб не было путаницы. так можно сделать?
13. SAD - 09 Августа, 2011 - 16:01:45 - перейти к сообщению
зачем? вы то одну форму отправляете со весми полями

 

Powered by ExBB FM 1.0 RC1