Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Insert do tabeli dynamicznie dodawanych pól (JS)
BigZ
post 16.12.2012, 19:30:07
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.05.2011

Ostrzeżenie: (0%)
-----


Witam!

Poniżej wklejam kawałek kodu (jeden prosty pliczek) z JS-em. Dodaję dynamicznie dane JS-em (buttonami) - dodaje grupę i do niej jedną lub kilka opcji.
Chciałbym to, co otrzymam w postaci tablicy (pod koniec pliku oznaczone kodem php) wysłać do mojej bazki, która ma nastepującą strukturę:

|====GRUPA====|
|------id-----|
|----nazwa----|
|=============|

|====OPCJE====|
|------id-----|
|--id_grupy---| //FK do GRUPA.ID
|----nazwa----|
|=============|


W jaki sposób moge to zrobić? Nie jestem jakoś super doświadczony w php, więc pytam smile.gif Ogólnie zasady INSERT INTO w php znam, ale tylko w przypadku zwykłych zmiennych. Pomoże ktoś wygrzebać się z tych tablic? smile.gif
Przykładowy wynik tego print_r : Array ( [0] => g1o1 ) Array ( [0] => g2o1 [1] => g2o2 [2] => g2o3 )


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Dokument bez tytułu</title>
  6. <script src="js/jquery-1.5.2.min.js" type="text/javascript"></script>
  7. <script type="text/javascript">
  8. var counter_group = 0;
  9. var limit_group = 10;
  10. var counter_option = 0;
  11. var limit_option = 10;
  12.  
  13. var addInput = function(divName) {
  14. if (counter_option == limit_option - 1) {
  15. alert('You cannot add more options.');
  16. } else {
  17. counter_option++;
  18. var newdiv = document.createElement('div');
  19. newdiv.innerHTML = "<font style='margin-left:50px;'>Option</font> " + (counter_option + 1) + "<input type='text' name='groups[" + counter_group + "][options][]'>";
  20. document.getElementById(divName).appendChild(newdiv);
  21. }
  22. }
  23.  
  24. var addGroup = function(divName) {
  25. if (counter_group == limit_group - 1) {
  26. alert('You cannot add more groups.');
  27. } else {
  28. counter_group++;
  29. counter_option = -1;
  30. var newdiv = document.createElement('div');
  31. newdiv.innerHTML = "Group " + (counter_group + 1) + "<input type='text' name='groups[" + counter_group + "][name]'>";
  32. document.getElementById(divName).appendChild(newdiv);
  33. }
  34. }
  35. </script>
  36. </head>
  37.  
  38. <body>
  39. <form action="costam.php" method="post">
  40. <input type="hidden" name="sent" value="true" />
  41. <div id="dynamicInput">
  42. Group 1
  43. <br>
  44. <input type="text" name="groups[0][name]">
  45. <div id="dynamicInput" style="margin-left:50px;">
  46. Option 1
  47. <br>
  48. <input type="text" name="groups[0][options][]">
  49. </div>
  50. </div>
  51. <input type="button" value="Add another group" onClick="addGroup('dynamicInput');">
  52. <input type="button" value="Add another option" onClick="addInput('dynamicInput');">
  53. <input type="submit" value="Dodaj do bazy" class="alt_btn">
  54. </form>
  55. <?php
  56. if($_POST['sent'])
  57. {
  58. echo 'form sent<br />';
  59. foreach ($_POST['groups'] as $group) {
  60. $name = $group['name'];
  61. print_r($options = $group['options']);
  62. }
  63. }
  64. ?>
  65. </body>
  66. </html>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:07