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
Giluś
post
Post #2





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

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


Super, aż tak rozbudowanej odpowiedzi w sumie nie oczekiwałem (IMG:style_emoticons/default/smile.gif) , ale wszystko działa, lecz mam jeszcze jeden drobny problem..

Nie wiem dlaczego, ale nie przesyła mi danych z formularza w POST z tych dynamicznie utworzonych pół, cały kod wygląda tak:

  1. <div class="row">
  2.  
  3. <div class="col-lg-2" id="input1">
  4. <div class="form-group">
  5. <input class="form-control" name="kod[1]" placeholder="Kod towaru">
  6. </div>
  7. </div>
  8.  
  9. <div class="col-lg-2" id="input2">
  10. <div class="form-group">
  11. <input class="form-control" name="nazwa[1]" placeholder="Nazwa towaru">
  12. </div>
  13. </div>
  14.  
  15. <div class="col-lg-2" id="input3">
  16. <div class="form-group">
  17. <input class="form-control" name="ilosc[1]" placeholder="Ilość">
  18. </div>
  19. </div>
  20.  
  21. <div class="col-lg-2" id="input4">
  22. <div class="form-group">
  23. <input class="form-control" name="wartosc[1]" placeholder="Wartość całkowita">
  24. </div>
  25. </div>
  26.  
  27.  
  28. <div class="col-lg-2" id="input5">
  29. <div class="form-group">
  30. <select name="klient[1]" class="form-control">
  31. <option>Wybierz klienta</option>
  32.  
  33. <?php
  34. $mysql_klient = mysql_query("SELECT * FROM klient") or die('Błąd zapytania');
  35.  
  36. if(mysql_num_rows($mysql_klient) > 0) {
  37. while($rklient = mysql_fetch_assoc($mysql_klient)) {
  38. echo '<option value="'.$rklient['id'].'">'.$rklient['imie'].' '.$rklient['nazwisko'].'</option>';
  39. }
  40. }
  41. ?>
  42. </select>
  43. </div>
  44. </div>
  45.  
  46. <div class="col-lg-2">
  47. <div class="form-group" id="cars"></div>
  48. </div>
  49. </div>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. var i = 2;
  3. $('#add').on('click', function(e){
  4. var ii = i++;
  5. e.preventDefault();
  6. var input = '<div class="form-group"><input class="form-control" name="kod['+(ii)+']" placeholder="Kod towaru['+(ii)+']"></div>';
  7. $('#input1').append(input);
  8.  
  9. var input = '<div class="form-group"><input class="form-control" name="nazwa['+(ii)+']" placeholder="Nazwa towaru['+(ii)+']"></div>';
  10. $('#input2').append(input);
  11.  
  12. var input = '<div class="form-group"><input class="form-control" name="ilosc['+(ii)+']" placeholder="Ilość['+(ii)+']"></div>';
  13. $('#input3').append(input);
  14.  
  15. var input = '<div class="form-group"><input class="form-control" name="wartosc['+(ii)+']" placeholder="Wartość całkowita['+(ii)+']"></div>';
  16. $('#input4').append(input);
  17.  
  18. var input = '<div class="form-group"><select name="klient['+(ii)+']" class="form-control"><option>Wybierz klienta</option><?php $mysql_klient = mysql_query("SELECT * FROM klient") or die('Błąd zapytania'); if(mysql_num_rows($mysql_klient) > 0) { while($rklient = mysql_fetch_assoc($mysql_klient)) { echo '<option value="'.$rklient['id'].'">'.$rklient['imie'].' '.$rklient['nazwisko'].'</option>';} } ?> </select></div>';
  19. $('#input5').append(input);
  20.  
  21. });
  22.  
  23. $('[name=klient]').on('change', function () {
  24. var id_klient = $(this).val();
  25. $("#cars").load("/var/option_samochod_zamowienie.php", {id_klient: id_klient});
  26. });
  27. });
[JAVASCRIPT] pobierz, plaintext


No i wyświetlam sobie dane:
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';


I dostaje wynik, przy dodaniu 2 dodatkowych opcji..
Kod
Array
(
    [kod] => Array
        (
            [1] => 1
        )

    [nazwa] => Array
        (
            [1] =>
        )

    [ilosc] => Array
        (
            [1] =>
        )

    [wartosc] => Array
        (
            [1] =>
        )

    [klient] => Array
        (
            [1] => Wybierz klienta
        )

)




Ogólnie to wiem, że nie działa mi póki co ta opcja z wyborem klienta i później samochodu, głównie przez te name itd.., ale póki co chciałbym z tymi przesyłaniami sobie jakoś poradzić (IMG:style_emoticons/default/smile.gif)


Pozdrawiam i z góry bardzo dziękuje za pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował Giluś 23.06.2015, 09:56:28
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 - 12:05