<?php class c_punkt_ankiety { #numer pytania . sluzy jako licznik i jako inf z ktorego pytania jest podana odp wiedz var $numer; #pytanie ; var $pytanie; #typ odpowiedzi enum Checkobox, radio, textarea var $typ; #ilosc mozliwosci w przypadku gdy $typ==chbox, radio,text #1 - chbox, 2 - radio, 3- tezt var $rozmiar; #lista odpowiedzi #wygenerowany kod html var $kod; #metody itd... } class c_ankieta { #liczba punktow ankiety var $ile_punktow; #nagłówek nakiety var $naglowek; #kod ankiety przechowuje aktualny kod calej ankiety var $kod_ankiety; #punkty var $pkt; #metody itd.... } ?>
Powyzej czesc definicji klasy bo metody sa niepotrzebne do wyjasnienie problemu
<?php $ankieta= new c_ankieta; $i=0; for ($i=0;$i<$_POST['licznik'];$i++){ $ankieta->pkt[$i]=new c_punkt_ankiety; $ankieta->pkt[$i]->dodaj_numer($i); $ankieta->pkt[$i]->dodaj_pytanie($_POST[$i]); $typ=\"typ\".$i; $ankieta->pkt[$i]->wybierz_typ($_POST[$typ]); $z=\"0\"; for($j=0;$j<6;$j++){ if ($_POST[$i.\"_\".$j]!=\"\") { $ankieta->pkt[$i]->odpowiedzi[$z]=$_POST[$i.\"_\".$j]; $z+=\"1\"; } } $ankieta->pkt[$i]->wybierz_rozmiar($z); $ankieta->pkt[$i]->generuj_punkt_ankiety(); } $ankieta->ustaw_liczbe_punktow($i); $ankieta->wygeneruj_kod(); } ?>
Powyzej inicjowanie obiektu o nazwie ankieta
<?php //dodaj ankiete do bazy function dodaj_ankiete_do_bazy($ankieta,$database){ print ($baza_nalgowek = \"insert into \".$database.\".ankieta (id_ankiety,pole, atrybut,stat) values('','$ankieta->naglowek',0,0)\"); $baza_kod =\"insert into \".$database.\".ankieta(id_ankiety,pole,atrybut,stat) values('','$ankieta->kod_ankiety',1,0)\"; for($i=0; $i < $ankieta->ile_punktow; $i++ ){ $baza_pytanie=\"insert into \".$database.\".ankieta(id_ankiety,pole,atrybut,stat) values('','$ankieta->pkt[$i]->pytanie',2,0)\"; for ( $j=0 ; $j< $ankieta->pkt[$i]->rozmiar ; $j++){ $baza_odpowiedz=\"insert into \".$database.\".ankieta(id_ankiety,pole,atrybut,stat) values(''.'$ankieta->pkt[$i]->odpowiedz[$j]',3,0)\"; } } } ?>
Wytłuszczone zostały 2 rzeczy pierwsza, poza funkcją prawidłowo wyswietli dane
Druga w funkcji wyswietla cos takiego.... Array[0]->pytanie
Nie wiem dlaczego ta zmienna nie jest widziana w funkcji mimo ze do funkcji przekazuje cały obiekt (a wlasnie ankieta do obiekt typu c_ankieta a pkt jest obiektem typu c_punkt_ankiety )
Dzieki z góry za sugestie, podowiedzi, i rozwiązania. Pozdrawiam
edit:
Nadminie jeszcze ze ostatnia petla wykonuje sie dokladnie tyle razy ile trzeba co oznacza ze $ankieta->pkt[$i]->rozmiar jest jak najbardzie widoczna ale niestety tylko dla ilosci przebiegow nie da rady tego wypisac bo wyswietli sie cos takiego Array[]->rozmiar
Mozecie juz skasowac posta sam doszedłem metoda prob i błędów chociaż zupełnie nie wiem dlaczego tak sie działa w każdym razie juz nie ma błędu i smiga
