Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Insert do tabeli dynamicznie dodawanych pól (JS)
BigZ
post
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 (IMG:style_emoticons/default/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? (IMG:style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 6)
Mlodycompany
post
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


jquery ajax
Go to the top of the page
+Quote Post
BigZ
post
Post #3





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

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


Przepraszam, ze co?

Mam gotowa tablice w php (kolorowa skladnia), tylko nie wiem jak z niej wyciagnac dane, zeby je wyslac do bazy danych. Nie pomylilem dzialow ... W tej chwili wypisuje foreach-em a chce wkladac do tabeli w bazie w odpowiedniej kolejnosci, czy ktos pomoze? Bede bardzo wdzieczny, zalezy mi na czasie..

Ten post edytował BigZ 17.12.2012, 08:22:01
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro te dane z tablicy wypisujesz foreachem no to masz defacto to już jako zmienne/wartosci. A te normalnie wkładasz do bazy (piszesz, że umiesz wkładać do bazy)
Go to the top of the page
+Quote Post
BigZ
post
Post #5





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

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


Cytat(BigZ @ 16.12.2012, 19:30:07 ) *
Ogólnie zasady INSERT INTO w php znam, ale tylko w przypadku zwykłych zmiennych. Pomoże ktoś wygrzebać się z tych tablic? (IMG:style_emoticons/default/smile.gif)

Nie potrafię operować na tablicach takiego typu, pomoże mi ktoś napisać taki kod? To zapewne tylko kilka linijek .. (IMG:style_emoticons/default/smile.gif) Naprawde bardzo mi na tym zależy..
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. foreach($tablica as $k => $v) {
  2.  
  3. $pdo -> query("INSERT INTO tabela ('".$v['id']."', '".$v['miasto']."')");
  4. }


Ten post edytował CuteOne 17.12.2012, 10:15:09
Go to the top of the page
+Quote Post
BigZ
post
Post #7





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

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


OK, dzięki CuteOne (IMG:style_emoticons/default/smile.gif) WSZYSTKO DZIALA JAK NALEZY (IMG:style_emoticons/default/smile.gif)

Ten post edytował BigZ 17.12.2012, 12:30:24
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 19:26