![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 13.12.2009 Skąd: Pyrzyce Ostrzeżenie: (0%) ![]() ![]() |
Witam, tworząc pewną aplikację napotkałem się na koniecznośc dodawania dynamicznie inputów w zależności od potrzeb użytkownika. Wykorzystałem do tego metodę appentChild, jednak jak się okazuje obiekty stworzone za pomocą tej metody nie zwracają mi wartości w tablicy $_POST[].
Przedstawię niżej kod odpowiedzialny za wstawienie selecta (do formularza): Kod //----------------------------------------------------------------------------------------------------------------- var numer=0; var checknij = 0; $('#dodaj_nowy_termin').click(function() { // kiedy klikniemy na przycisk nowy termin checknij++; // inkrementuj numer i checknij (numer po to aby dawać unikalne nazwy, checknij po to aby odpowiednio ułożyć pola godziny/minuty numer++; //alert(numer); if(numer > 2 ) { $('#terminy_przyjec').css('height','120px'); } // jeżeli klikniemy drugi raz to ustawia nam stałą wysokość co włączy scrollowanie diva var kontener_input = document.getElementById("terminy_przyjec"); // kontener do którego będziemy wsadzać inputy var dzien_znacznik = document.createElement('select'); // stworzenie selecta dla dni dzien_znacznik.setAttribute("name","dzien_przyjecia_"+numer); // nadanie mu unikalnej nazwy dzien_znacznik.className = 'width_input'; // i klasy kontener_input.appendChild(dzien_znacznik); // oraz wrzucenie go do kontenera for(var u=6;u>=-1;--u) { // jak go wrzucimy uzuepełniamy go opcjami (aby nie był pusty) var dni = new Array("Poniedziałek","Wtorek","Sroda","Czwartek","Piatek","Sobota","Niedziela"); // tablicowe opcje if(u==-1) { var opcje_dni = "<option>--</option>"+opcje_dni; } // jeśli mamy wart -1 to pozostaw jedno u góry puste pole else { var opcje_dni = "<option>"+dni[u]+"</option>"+opcje_dni; } // jeśli nie to uzuepłniaj go o kolejne dni dzien_znacznik.innerHTML = opcje_dni; // i wrzucaj go do selecta z dniami } for(var b=0;b<4;b++) { // twórz 4 selecty (2 z godzinami - od - do i 2 z minutami - od - do ) var znacznik = document.createElement('select'); // tworzenie znaczniku odpowiadającego za selecty z godzinami/minutami znacznik.setAttribute('name', 'przyjecia_select_termin_'+numer); // // nadanie im unikalnej nazwy znacznik.className ='terminy_godziny'; for(var s=23;s>=-1;--s) { // wypełnienie 2 selectów godzinami od 0-23 if(s==-1) { var opcje_h = "<option> </option>"+opcje_h; } // wrzucaj puste pole jeśli jest -1 else { var opcje_h = "<option>"+s+"</option>"+opcje_h; } // jeśli nie to dawaj konkretne godziny } if(checknij == 1) { // przy kliknięciu butona jednorazowo wykonaj pętlę odpowiadającą za minuty for(var q=59;q>=-1;--q) { if(q==-1) { var opcje_m = "<option> </option>"+opcje_m; } else { var opcje_m = "<option>"+q+"</option>"+opcje_m; } } checknij = 0; } kontener_input.appendChild(znacznik); // dodaj znaczniki do kontenera if((b == 1) || (b==3)) { znacznik.innerHTML = opcje_m; // przy 2 i 4 znaczniku daj opcję minut if(b==1) { kontener_input.appendChild(document.createTextNode('-')); } // między 2 i 3 znacznikiem daj myślnik } else { znacznik.innerHTML = opcje_h; } // przy 1 i 3 opcję godzin } }); //--------------------------------------------------------------------------------------------------------------- Powyższy skrypt swoje zadanie spełnia, tj. po kliknięciu w przycisk pojawia mi się select. Wszystko fajnie tylko teraz jak uzupełnie te selecty i prześlę formularz metodą post zmienna która przechowuje wartości z selectów nie zwraca mi ich w żaden sposób. Poniżej przedstawię strukturę formularza :
W praktyce po przesłaniu formularza zwraca mi jedynie $_POST[] który wrzucony był domyślnie na stronie, reszta ( czyli te które dodaję za pomocą appendChild) są jakby niewidoczne. Proszę o jakieś wskazówki, które naprowadziłyby mnie na odpowiedni trop. (w razie potrzeb mogę podesłać więcej kodu) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 00:44 |