Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie tabeli.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Rewil
Witam mam następujący problem:

Link do skryptu.

Po dodaniu nowych okienek formularza, okienka te sklejają się, zamiast robić równe odstępy. Próbowałem już kilkanaście razy, ale po pewnym momencie się gubię, i tracę kontrolę, nad całą tabelą. Jeżeli ktoś, bardziej biegły, mógł się temu przyjrzeć, był bym naprawdę szczęśliwy.

Za pomoc, dziękuje.
Pozdrawiam Rewil.


Dobra, udało mi się. Ale powstał, nowy problem, taki iż po wpisaniu czegoś do inputa, i po kliknieciu w button, zawartosc inputa znika. A zależy mi na efekcie, że po kliknięciu pojawia się nowy input, a zawartość porzedniego inputa zostaje. Any ideas?

  1.  
  2. <script type="text/javascript" language="Javascript1.2">
  3.  
  4. var i = 2;
  5.  
  6.  
  7. function addInput(){
  8.  
  9. if (i < 10) {
  10. var b = '0'+i;
  11. }
  12. else {
  13. var b = i;
  14. }
  15.  
  16. document.getElementById("wyswietl").innerHTML += '<tr><td width="100%" colspan="2">'+b+'.<input type="text" name="imie'+i+'" id="sampleInput" value=""><input type="text" name="nazwisko'+i+'" id="sampleInput" value=""><textarea name="zabieg'+i+'" id="sampleInput" rows="1" cols="50"></textarea><input type="text" name="link'+i+'" id="sampleInput" value=""><hr></td></tr>';
  17.  
  18.  
  19. i++
  20.  
  21. }
  22.  
  23.  
  24.  
  25.  
  26. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
  27. <tr>
  28. <td width="50%"><b>Pacjenci</b></td>
  29. <td width="50%">
  30. <p align="right"><input type="button" value="Dodaj Pacjenta" onclick="addInput();"></td>
  31. </tr>
  32. <tr>
  33. <td width="100%" colspan="2">
  34.  
  35. 01.<input type="text" name="imie" id="sampleInput" value=""><input type="text" name="nazwisko" id="sampleInput" value=""><textarea name="obrazenia" id="sampleInput" rows="1" cols="50"></textarea><input type="text" name="link" id="sampleInput" value="">
  36. <hr>
  37. </td>
  38. </tr>
  39.  
  40. <tr>
  41. <td width="100%" colspan="2">
  42. <div id="wyswietl"></div>
  43. </td>
  44. </tr>
  45.  
  46.  



Mam nadzieje, ze wyraziłem się dość, jasno.
korro
Wartości znikają dlatego, że pobierasz html zawarty 'wyswietl' i ponownie go tam umieszczasz.
Do dynamicznych formularzy użyłbym jQuery, dobrzy przykład jest tu: http://jquery.bassistance.de/validate/demo...mic-totals.html
Polega to na tym, że w kodzie html jest ukryty element z wzorcem:
Kod
<textarea style="display:none" id="template">
    <tr>
        <td>
            <label>{0}. Item</label>
        </td>
        <td class='type'>
            <select name="item-type-{0}">
                <option value="">Select...</option>
                <option value="0">Learning jQuery</option>
                <option value="1">jQuery Reference Guide</option>
                <option value="2">jQuery Cookbook</option>
                <option vlaue="3">jQuery In Action</option>
                <option value="4">jQuery For Designers</option>
            </select>
        </td>
        <td class='quantity'>
            <input size='4' class="quantity" min="1" id="item-quantity-{0}" name="item-quantity-{0}" />
        </td>
        <td class='quantity-error'></td>
    </tr>
</textarea>

następnie dodajemy tworzymy szablon i dodajemy zdarzenie do buttona
Kod
var template = jQuery.format($("#template").val());
    function addRow() {
        $(template(i++)).appendTo("#orderitems tbody");
    }
    
    var i = 1;
    // start with one row
    addRow();
    // add more rows on click
    $("#add").click(addRow);

dostajemy bardzo wygodne dynamiczne formy.
Rewil
Wszystko łądnie, u góry opisane, ale jedno ale. Nie, ma czegoś prostszego? Z samymi, inputami jako przykładu?
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.