Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML][JavaScript] Dynamiczne kopiowanie elementów strony po naciśnięciu przycisku.
Giluś
post
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Hej,

Chciałbym na stronie zrobić dynamiczne tworzenie input, tak że można ich stworzyć nawet i 100 i zawsze wyglądają tak samo.

Mam taki kod:
  1. <div class="row">
  2.  
  3. <div class="col-lg-2">
  4. <div class="form-group">
  5. <input class="form-control" name="model" placeholder="Kod towaru">
  6. </div>
  7. </div>
  8.  
  9. <div class="col-lg-2">
  10. <div class="form-group">
  11. <input class="form-control" name="model" placeholder="Nazwa towaru">
  12. </div>
  13. </div>
  14.  
  15. <div class="col-lg-2">
  16. <div class="form-group">
  17. <input class="form-control" name="model" placeholder="Ilość">
  18. </div>
  19. </div>
  20.  
  21. <div class="col-lg-2">
  22. <div class="form-group">
  23. <input class="form-control" name="model" placeholder="Wartość całkowita">
  24. </div>
  25. </div>
  26.  
  27. <div class="col-lg-2">
  28. <div class="form-group">
  29. <select name="klient" class="form-control">
  30. <?php
  31. $mysql_klient = mysql_query("SELECT * FROM klient") or die('Błąd zapytania');
  32.  
  33. if(mysql_num_rows($mysql_klient) > 0) {
  34. while($rklient = mysql_fetch_assoc($mysql_klient)) {
  35. echo '<option value="'.$rklient['id'].'">'.$rklient['imie'].' '.$rklient['nazwisko'].'</option>';
  36. }
  37. }
  38. ?>
  39. </select>
  40. </div>
  41. </div>
  42.  
  43. <div class="col-lg-2">
  44. <div class="form-group">
  45. <select name="klient" class="form-control">
  46. <?php
  47. $mysql_sam = mysql_query("SELECT * FROM samochod") or die('Błąd zapytania');
  48.  
  49. if(mysql_num_rows($mysql_sam) > 0) {
  50. while($rsam = mysql_fetch_assoc($mysql_sam)) {
  51. echo '<option value="'.$rsam['id'].'">'.$rsam['model'].' '.$rsam['marka'].'</option>';
  52. }
  53. }
  54. ?>
  55. </select>
  56. </div>
  57. </div>
  58.  
  59. </div>


I chciałbym aby po naciśnięciu przycisku np.: "Dodaj" powielało się ten cały kod, tylko wiadomo później trzeba zrobić odpowiednie name="" tak aby rozpoznać je po stronie PHP..

Dodatkowo chciałbym zrobić tak aby po wyborze Klienta z pierwszej listy (select) dynamicznie się wyświetlała lista z Samochodami (drugi select) dla danego klienta, nie wiem zbytnio jak to zrobić.


W sumie poradziłbym sobie z tworzeniem tych samych gołych inputów, ale nie wiem jak później dodać ten kod PHP, Divy itd.., dlatego liczę na waszą pomoc (IMG:style_emoticons/default/smile.gif)


Pozdrawiam i z góry bardzo dziękuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mozesz to zrobic na dwa sposoby uzywajac np funkcji ajax lub load. Tak wiec:

  1. <div class="form-group">
  2. <select name="klient" class="form-control">
  3. <?php
  4. $mysql_klient = mysql_query("SELECT * FROM klient") or die('Błąd zapytania');
  5.  
  6. if (mysql_num_rows($mysql_klient) > 0) {
  7. while ($rklient = mysql_fetch_assoc($mysql_klient)) {
  8. echo '<option value="' . $rklient['id'] . '">' . $rklient['imie'] . ' ' . $rklient['nazwisko'] . '</option>';
  9. }
  10. }
  11. ?>
  12. </select>
  13. </div>
  14.  
  15.  
  16. <div class="col-lg-2">
  17. <div class="form-group" id="cars">
  18.  
  19. </div>
  20. </div>
  21. <script>
  22.  
  23. $(document).ready(function () {
  24. $('[name=klient]').on('change', function () {
  25. var id_klient = $(this).val();
  26.  
  27. $("#cars").load("/ajax/option.php", {id_klient: id_klient});
  28. });
  29. });
  30.  
  31. </script>


plik option.php
  1. <select name="klient" class="form-control">
  2. <?php
  3. $mysql_sam = mysql_query("SELECT * FROM samochod WHERE id_klient = " . $_POST['id_klient'] . "") or die('Błąd zapytania');
  4.  
  5. if (mysql_num_rows($mysql_sam) > 0) {
  6. while ($rsam = mysql_fetch_assoc($mysql_sam)) {
  7. echo '<option value="' . $rsam['id'] . '">' . $rsam['model'] . ' ' . $rsam['marka'] . '</option>';
  8. }
  9. }
  10. ?>
  11. </select>


Mozesz tez uzyc funckji ajax:

  1. <div class="form-group">
  2. <select name="klient" class="form-control">
  3. <?php
  4. $mysql_klient = mysql_query("SELECT * FROM klient") or die('Błąd zapytania');
  5.  
  6. if (mysql_num_rows($mysql_klient) > 0) {
  7. while ($rklient = mysql_fetch_assoc($mysql_klient)) {
  8. echo '<option value="' . $rklient['id'] . '">' . $rklient['imie'] . ' ' . $rklient['nazwisko'] . '</option>';
  9. }
  10. }
  11. ?>
  12. </select>
  13. </div>
  14.  
  15.  
  16. <div class="col-lg-2">
  17. <div class="form-group" id="cars">
  18.  
  19. </div>
  20. </div>
  21. <script>
  22.  
  23. $(document).ready(function () {
  24. $('[name=klient]').on('change', function () {
  25. var id_klient = $(this).val();
  26.  
  27. $.ajax({
  28. method: "POST",
  29. url: "ajax/option.php",
  30. data: {
  31. id_klient: id_klient
  32. },
  33. dataType: "JSON",
  34. success: function (res) {
  35. var html = '<select name="klient" class="form-control">';
  36. $.each(res, function(k, v){
  37. html += '<option value='+v.id+'>'+v.model+' '+ v.marka</option>';
  38. });
  39. html += '</select>';
  40. $('#cars').html(html);
  41. }
  42. });
  43. });
  44. });
  45.  
  46. </script>


option.php
  1. <?php
  2. function klient() {
  3. $mysql_sam = mysql_query("SELECT * FROM samochod WHERE id_klient = " . $_POST['id_klient'] . "") or die('Błąd zapytania');
  4. $rsam = mysql_fetch_assoc($mysql_sam);
  5. return json_encode($rsam);
  6. }
  7. klient();
  8. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 08:52