Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzony przez www formularz i jego wysłanie, .. nie wysyła wszystkich pol
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Napisałem aplikacje do testów i tworzę w niej używając JS formularze np. pytanie ma 4 odpowiedzi. Ilość odpowiedzi ustalam odpowiednią liczbą i skryptem generuję odpowiednią ilość inputów type=text. Problem polega na tym że przegladarki takie jak FF i Opera nie wysyłają tych dynamicznie wygenerowanych pól ( tylko IE wysyła :| ) . Korzystam z innerHTML który wstawia w diva inputy.
Go to the top of the page
+Quote Post
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


nie powiem, że pokazanie kodu by pomogło ..
Go to the top of the page
+Quote Post
jastu
post
Post #3





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Nie wiem czy pomoże wstawienie kodu ale proszę :

Funkcja która generuje inputy do pytania " jedna odpowiedź prawidłowa"
  1. function make_form($display_div,$ile,$insert_div){
  2. // ilosć odpowiedzi
  3. $ile_odp = $($ile).value;
  4.  
  5. // wyświetlenie odpowiedniego diva (innegi niż ten w który wstzelimy kod html)
  6. $($display_div).style.display="block";
  7.  
  8. // wyczyszczenie diva w którego wsztrzelimy html'a
  9. $($insert_div).innerHTML = "";
  10.  
  11. // generowanie inputów
  12. for(var $i = 1;i<=$ile_odp;$i++){
  13. $($insert_div).innerHtml += '<input type="radio" value= " '+$i+' " name="correct" >';
  14. $($insert_div).innerHtml +='<input type="text" name=" '+$i+' "><br>';
  15. }
  16.  
  17. }
  18.  
  19. function $($el){
  20. return document.getElementById($el);
  21. }


Formularz na stronie generuję się prawodłowo , po wysłaniu go jednak tablica POST nie zawiera pól generowanych dynamicznie.
Go to the top of the page
+Quote Post
revyag
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Nazwa inputa nie może być/zaczynać się od liczby/cyfry.
A poza tym w js nie daje się $ przed nazwą zmiennej.
Go to the top of the page
+Quote Post
jastu
post
Post #5





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Wiem o tym że w JS nie ma potrzeby dodawania $ przed nazwą zmiennej (łatwiej mi tak orientowac się w kodzie), natomiast zmiana linijki

  1. $($insert_div).innerHtml +='<input type="text" name=" '+$i+' "><br>';


na

  1. $($insert_div).innerHtml +='<input type="text" name=" o_'+$i+' "><br>';


nie przyniosła pożądanego efektu.
pzdr
Go to the top of the page
+Quote Post
revyag
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


1. nie innerHtml, tylko innerHTML
2.
Kod
for(var $i = 1;i<=$ile_odp;$i++){
widzisz, piszesz dolce przed nazwami zmiennych i później masz takie kwiatki, że zapominasz o ich napisaniu.
Go to the top of the page
+Quote Post
jastu
post
Post #7





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


(IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Nie chcę być niemiły ale czego dotyczyło pytanie ? (literówki w kodzie mogą się zdarzyć bo przepisuję go recznie - jest na laptopie, ). Formularz mi się ładnie generuje i wyświetla ( kod z laptopa nie zawiera błędów które wspólnie poprawiamy) ... chodzi o tablicę $_POST. Wszystkie pola formularza są w DIVie który jest między znacznikami FORM i nie mam pojęcia dlaczego pola dodawane skryptem nie wchodzą w skład tablicy POST.
Pozdrawiam serdecznie

-- edit
Przeglądarki pełne są tajemnic ! A IE bywa czasami przesadnie przyjazna użytkownikowi, nawet do tego stopna że nie zauważamy prostych błędów (zagnieżdżanie znaczników).
pozdrawiam

Ten post edytował jastu 30.04.2007, 16:28:55
Go to the top of the page
+Quote Post
revyag
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Oczekujesz pomocy a podajesz kod który zawiera błędy. Skąd mam wiedzieć co dla Ciebie znaczy "ze formularz poprawnie się generuje".
Skopiowałem Twój kod i na jego podstawie, po poprawieniu błędów, które podałem, miałem działający kod.
Poza tym z tego co piszesz chodziło co coś innego, więc następnym razem zadawaj pytanie z głową, a również taką odpowiedź dostaniesz .
Go to the top of the page
+Quote Post
marcel33
post
Post #9





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 19.07.2007

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


mam podobny kłopot nie wysyłają mi się pola dynamicznie dodane do formularza, jest to pewnie właciwość FF bo w IE jest ok.
Może trzeba zmusić przeglądarkę żeby przed wysłaniem uaktualniła informacje o polach formularza, tylko jak to zrobić i czy w ogóle możliwe jest z poziomu JS zmusić przeglądarkę do przeparsowania części lub całej strony?

Jak Ktoś wie jak to obejść, będę wdzięczny.


już jest ok,
w starym skrypcie było:
  1. ....
  2. <div id="tresc_generowana">....</div>
  3. ....
  4. </form></table>

a wystarczyło poprawić na:
  1. ....
  2. <div id="tresc_generowana">....</div>
  3. ....
  4. </table></form>


Może komuś sie taka wiedza przyda (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
jastu
post
Post #10





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Tak, chodzi tu o kolejność znaczników (zagnieżdżanie). Nie sądziłem ze może nieć to aż taki wpływ na funkcjonowanie formularza , Pozdrawiam

http://www.w3.org/TR/html4/interact/forms.html
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
3 Użytkowników czyta ten temat (3 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.10.2026 - 21:35