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
}
});
//---------------------------------------------------------------------------------------------------------------
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 :
echo '<div id="terminy_przyjec"> <select name="dzien_przyjecia_0" class="dni_tyg" style="width:200px;">'; //---------------------------------------------------------------------------------------------- $p_dni = 0; $p_dni_array = array("--","Poniedziałek","Wtorek","Sroda","Czwartek","Piatek","Sobota","Niedziela"); //---------------------------------------------------------------------------------------------- while($p_dni < 7) { $p_dni++; } function godzina_minuta_timer($timer) { echo "<select name='przyjecia_select_termin_".($timer)."' class='terminy_godziny'><option></option>"; for($godziny=0;$godziny<24;$godziny++) { } echo "<select name='przyjecia_select_termin_".($timer+1)."' class='terminy_godziny'><option></option>"; for($minuta=0;$minuta<60;$minuta++) { } } godzina_minuta_timer(-1); echo ' </div>
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)