Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][JavaScript]Przekazywanie wielu zmiennych w jQuery.format($("#cos").val()
Forum PHP.pl > Forum > Przedszkole
wspak
Tworzę taki oto skrypt do generowania formularzy. Schody zaczęły się przy dodawaniu checkboxów (to samo będzie się tyczyć radio i select'ów), gdy chcę dodać opcje gdyż do każdej z opcji powinienem dodać zarówno id checkboxa do którego ma być przypisany jak i id konkretnej opcji (jest to niezbędne, abym mógł je niezależnie od siebie usuwać). Działanie skryptu można zobaczyc pod adresem: http://wspak.pl/form_generator/zapytanie.html

będę wdzięczny za pomoc bo się już zamotałem

oto źródło:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <head>
  3. <title>Dynamiczne formularze</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  6. <script type="text/javascript" src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
  7. <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
  8. </head>
  9. <body>
  10. <script type="text/javascript">
  11. $(document).ready(function(){
  12. // tworzymy zmienną i, wykorzystamy ją do identyfikowania wierszy
  13. // ustawiamy jej wartość 2, ponieważ jeden wiersz jest już w tabeli
  14. var i = 1;
  15. var opcjaChbx = 1;
  16. // tworzymy zmienną szablonWiersza i wczytujemy do niej szablon z textarea #szablon
  17. var szablonChbxa = jQuery.format($("#szablon_checkbox").val());
  18. var szablonOpcjiCheckbox = jQuery.format($("#szablon_opcji_checkbox").val());
  19. // tworzymy funkcję, która dodaje szablon do właściwej tabeli
  20.  
  21. function dodajCheckboxy() {
  22. var ii = i++;
  23. $(szablonChbxa(ii)).appendTo("#listaPol tbody");
  24. $("#usunChbxa_" + ii).click(function(){
  25. $("#wiersz_" + ii).remove();
  26. });
  27. $("#DodajOpcjeCheckbox_" + ii).click(function(){
  28. var opcjaChbxB = opcjaChbx++;
  29. $(szablonOpcjiCheckbox(opcjaChbxB)).appendTo("#listaOpcji_" + ii);
  30. $("#usunOpcjeCheckbox_" + opcjaChbxB).click(function()
  31. {
  32. $("#opcja_" + opcjaChbxB).remove();
  33. });
  34. });
  35. }
  36.  
  37. $("#dodajChbx").click(dodajCheckboxy);
  38.  
  39. });
  40. </script>
  41.  
  42.  
  43.  
  44. <!-- Szablon checkboxa w tabeli -->
  45.  
  46. <textarea id="szablon_checkbox" style="display:none;" cols="1" rows="1">
  47. <tr valign="top" id="wiersz_{0}">
  48. <td>
  49. <img src="images/minus.png" id="usunChbxa_{0}" alt="usun">
  50. </td><td>
  51. <input type="checkbox" name="" value="" checked disabled>
  52. <br>Nazwa:<br>
  53. <input type="text" name="nazwa[]">
  54. </td>
  55. <td>
  56. </td>
  57. <td> Czy wymagane <br>
  58. <input type="radio" name="req[]" value="tak"> Tak&nbsp;&nbsp;
  59. <input type="radio" name="req[]" value="nie" checked> Nie<br> <br>
  60. Tip:<br>
  61. &lt;textarea cols="40" rows="5" name="tip[]"&gt;&lt;/textarea&gt; <br><br>
  62.  
  63. Opcje:
  64.  
  65. <img src="images/plus.png" id="DodajOpcjeCheckbox_{0}" alt="usun">
  66. <div id="listaOpcji_{0}">
  67.  
  68. </div>
  69. </td>
  70.  
  71. <input type="hidden" value="{0}" name="lp[]">
  72. <input type="hidden" value="checkbox" name="typ[]">
  73. <input type="hidden" name="wartosc[]" value="">
  74.  
  75. </tr>
  76.  
  77. <!-- Szablon opcji checkboxa w tabeli -->
  78.  
  79. <textarea id="szablon_opcji_checkbox" style="display:none;" cols="1" rows="1">
  80. <tr valign="top" id="opcja_{0}">
  81. <td>
  82. <img src="images/minus.png" id="usunOpcjeCheckbox_{0}" alt="usun"> &nbsp;&nbsp;{0}
  83. </td>
  84.  
  85.  
  86. </tr>
  87.  
  88.  
  89. <!-- Właściwa tabela -->
  90.  
  91. <form action="parser.php" method="post">
  92. <tr><td>
  93. <input type="checkbox" name="" value=""> Checkbox</td><td><img src="images/plus.png" id="dodajChbx" alt="dodaj" >
  94. </td></tr>
  95.  
  96. </table>
  97. <table id="listaPol">
  98.  
  99. <tr>
  100. <th colspan="4">
  101. <input type="submit" name="wyslij" value="Wyślij">
  102. </th>
  103. </tr>
  104.  
  105. </tfoot>
  106.  
  107. </tbody>
  108. </table>
  109. </form>
  110. </body>
  111. </html>
  112.  
Destinate
Rób pętle, która do określonego ciągu tekstowego dodaje numer i takie też ID ustala, dla każdego elementu.

P.S. -> Semantyka leży... opisy formularzy za pomocą <label>, i wyrzuć te tabelki, rób to na divach smile.gif
wspak
mam!
19: var szablonOpcjiCheckbox = jQuery.format($("#szablon_opcji_checkbox").val() || []);
30: $(szablonOpcjiCheckbox(opcjaChbxB, ii)).appendTo("#listaOpcji_" + ii);

i dla sprawdzenia wyniku:

84: <img src="images/minus.png" id="usunOpcjeCheckbox_{0}" alt="usun"> &nbsp;&nbsp;{0}, {1}

śmiga smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.