Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne generowanie kodu PHP
Forum PHP.pl > Forum > Przedszkole
no_face
Jest jakas mozliwos by stworzyc dynamicznie pare linijek kodu php?

I drugie pytanie. Mozna w jakis fajny sposob zebrac zmienne przesylane z formularza w tablicy/tablicach?
czachor
1) tak, eval" title="Zobacz w manualu php" target="_manualem to potem potraktuj.
2) Można, ale nie wiem, co rozumiesz przez "fajne" smile.gif
NuLL
Ad.2
Kod
<input type='text' name='dane[costam]'>

Chyba powinno działać.
no_face
Sprawe przedstawie tak. Mam formularz tworzony dynamicznie z dos duzo iloscia pol txt i radio przez co dostaje duzo zmiennych typu zm_01, zm_02 itd. Chcialbym zeby wartosci tych zmiennych wyladowaly odrazu w tablicy, a to dlatego zeby nie kabinowac z duza iloscia zmiennych w skrypcie przetwarzajacym.
Dosc jasno czy jeszcze cos wyjasnic smile.gif
xardas
Istnieje coś takiego jak tablica $_POST, w której lądują wszystkie zmienne przesłane formularzem metodą POST.

p.s. Aha, a jeśli w formularzach używasz $zmienna to życzę szczęścia w dalszym programowaniu, będzie potrzebne tongue.gif
mike
Cytat(no_face @ 2005-08-30 22:01:32)
(...) przez co dostaje duzo zmiennych typu zm_01, zm_02 itd. Chcialbym zeby wartosci tych zmiennych wyladowaly odrazu w tablicy, a to dlatego zeby nie kabinowac z duza iloscia zmiennych w skrypcie przetwarzajacym.(...)

No przecież @NuLL Ci odpowiedział:
  1. <form action="#" methos="post">
  2. <input type="text" name="tab[]" value="bla bla" />
  3. <input type="text" name="tab[]" value="bla" />
  4. <input type="text" name="tab[]" value="bla bla bla" />
  5. ...
  6. </form>


Zmienne z takiego formularza obierzesz w tablicy $_POST[ 'tab' ] indeksowanej od 0, dane będą w kolejności wystąpowania pól w formularzu.
no_face
Cytat
No przecież @NuLL Ci odpowiedział:

W tym czasie pisalem akurat posta.

Cytat
p.s. Aha, a jeśli w formularzach używasz $zmienna to życzę szczęścia w dalszym programowaniu, będzie potrzebne

heeh, przyklad i wiem ze dane z form sa gromadzone w tab $_POST jezeli zostaly wyslane metoda POST.

Co do Twojej odpowiedzi to wlasnie o to mi chodzilo, wlasnie takiego rozwiazania szukalem, (tworzy sie tablica 2 wymiarowa, tak?) zaraz zaczne testowac, dzieki wielkie.

Wroce teraz do f. eval(); wykonuje ona jako kod php zawartosc zmiennej.
Jakos nie rozomie tego bloku
  1. <?php
  2. $string = 'cup';
  3. $name = 'coffee';
  4. $str = 'This is a $string with my $name in it.';
  5. echo $str. "n";
  6. eval("$str = "$str";"); // tego kawalka nie rozomiem
  7. echo $str. "n";
  8. ?>


---edit---
Fajnie że stosujesz bbCode, nie każdy początkujący potrafi.
Jeszcze tylko dorzucisz do arsenału [ quote ] i będą z Ciebie ludzie tongue.gif
~mike_mech
mike
Może to Ci pomoże zrozumieć. Dałem tam mały przykład.
Jak przypisać wynik działnia funkcji eval do zmien

Swoją drogą. Ci co szukają znajdują odpowiedź szybciej niż Ci co na nią czekają. tongue.gif
no_face
Cytat
Swoją drogą. Ci co szukają znajdują odpowiedź szybciej niż Ci co na nią czekają.

Przed rozpoczeciem tematu szukalem na forum czy jest jakis podobny temat, lecz nie znalazlem. Pozniej juz nie sprawdzalem czy istnieja jakies tematy na temat eval.

Co do tej funkcji (eval) to rozumiem jak dziala tylko moze po prostu bylem ciekaw czy mozna zrobic cos wiecej nia. Patrzalem na ten przyklad i nie rozomialem tego kawalka ktory jest zaznaczony komentarzem i myslalem ze to jakas wlanosc (atrybuty) f. eval, ale jak sie przypatrzylem to zauwarzylem ze tylko zamienia pojedyncze cudzyslowy na podwojne.
  1. <?php
  2. $string = 'cup';
  3. $name = 'coffee';
  4. $str = 'This is a $string with my $name in it.';
  5. echo $str. "n";
  6. eval("$str = "$str";");  // tego kawalka nie rozomiem
  7. echo $str. "n";
  8. ?>

Dzieki za wszystko.

Jeszcze jedno, dlaczego ten kod generuje ostrzezenie?
  1. <?php
  2. eval($waz = $_POST["$waz1"]);
  3. ?>
nospor
Cytat
Jeszcze jedno, dlaczego ten kod generuje ostrzezenie?
Pytanie za 100 punktów: A czy tak ciężko tobie było jeszcze napisać treść tego ostrzeżenia?

Zgaduję:
w zmiennej post nie ma index o nazwie w zmiennej $waz1?
no_face
Sorki, to z pospiechu.
Generuje taki komunikat:
Kod
Parse error: parse error in c:\usr\apache\httpd\html\m_konto\dod_grx.php(47) : eval()'d code on line 1

W zmiennej $waz1 jest odpowiednia wartosc tzn. nazwa odpowiednij zmiennej.
Takowa zmienna tez istnieje. Dodam jeszcze ze operacja konczy sie powodzeniem, przypisuje mi do zmiennej $waz odpowiednia wartosc, tylko ze ten komunikat. Pomyslalem ze jak kod dziala to jest narazie ok i wstawilem @ przed. No ale lepiej to poprawic.
nospor
eval($waz = $_POST["$waz1"]);

Taki zapis robi:
1) przypisanie do zmiennej $waz zawartości $_POST[$waz1]
2) w efekcie wywolanie eval na wartości $_POST[$waz1].
3) warning jest generowany, gdyż najwyraźniej $_POST[$waz1] jest złym kodem php

jesli chciales $_POST[$waz1] przypisac do $waz to na grzyba eval stosujesz?
no_face
Przedstawie to tak. Mam troche zmiennych z formularza, nazywaja sie np cos_1, cos_2 itd. W skrypcie tworze petle i po koleji tworze w zmiennej $waz1 nazwy tych zmiennych tak ze po kazdym przejsciu petli wartosc zmiennej $waz1 zmienia sie, najpierw posiada wartosc cos_1, itd

  1. <?php
  2. eval($waz = $_POST["$waz1"])
  3. ?>

Przypisuje do $waz po koleji wartosc z $_POST[$cos_1], $_POST[$cos_2] itd
nospor
No i ok. ale zeby do $waz przypisac kolejne wartosci nie potzreba do tego eval().
no_face
Rzeczywiscie nie potrzeba byla f, eval(); dziala zwykle przypisanie, za bardzo sie z ta f. rozpedzilem, no ale dazenie do odkrycia dlaczego generuje ostrzezenie jest nadal.
Dzieki.

przecież ci napisalem czemu generuje ostrzeżenie? masz w tej zmiennej zly kod php, jesli wogóle ta jest kod php tongue.gif
---
nospor


Dlaczego zly, przypisanie sie udaje itd, ale wiesz lepiej, wiec prosze o jakas podpowiedz by blad sie nie powtorzyl
no_face


przypisanie jest ok. sek w tym ze eval wymaga kodu php. A twoja zmienna nie zawiera kodu php i się eval wykrzacza. To że ty w eval robisz bezczelne przypisanie dwóch zmiennych nie powoduje że ewal wykonuje to przypisanie. eval wykona zawartość tej zmiennej. kapisz?
--
nospor


Teraz sie rozumiemy, trzeba bylo dodac w eval tak jak w normalnej linijce kdu znak konczoncy linie ";" i wszystko gra eval('$waz = $_POST["$waz1"];'); Jeszcze raz dzieki. Pozdrawiam.
no_face
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.