Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zmienna typu string jako wartosc warunku if
Forum PHP.pl > Forum > Przedszkole
exodus.mc
mamy takie cos
$a="$cos==1"

if ($a) ...


i mi zalezy aby if NIE sprawdzal wartosci $a ale aby wpisac w miejsce $a jej tekst... (generuje mi sie tresc if'a automatycznie, ale nie wiem jak go [sorka za takie wyrazenie] "zaincludowac" jako tresc warunku - aby warunek wyszedl
if ($cos==1)...    )

Dziekuje za kazda odp.

ps.
morduje sie z tym od wczoraj od 22.. i nie wiem (jestem poczatkujacym w php)
Cezar708
Szczerze mówiąc dość ciekawe, generalnie możesz pokombinować z funkcją eval(), ale za wyniki nie odpowiadam, innym rozwiązaniem może być po prostu stworzenie za pomocą php krótkiego skryptu php i go zaincludowanie... (też może być do dość spora dziura w systemie)

Może wrzucisz nam kod, w którym chcesz tego użyć, być może jest inne... bezpieczniejsze i łatwiejsze wyjście z sytuacji?
exodus.mc
ogolnie to wyglada tak, ze to ma byc w funkcji edytujacej dany wpis w tabeli.. Na poczatku sprawdza czy pola w formularzu edycyjnym sa puste. Jezeli sa to wype
nia je danymi z bazy 

Kod
<BR>if ($poz[0]=='' and $poz[1]=='' and $poz[2]=='' and $poz[3]=='' and $poz[4]=='' and $poz[5]=='') <BR>  {<BR>        for ($i = 1; $i < $_SESSION['cols']; $i++)<BR>                  {<BR>                      $poz[$i]=$row[$i];<BR>                    }<BR>  }<BR>

no i ja sobie zrobilem petelke ktora tworzy mi tresc if'a (tworze tablice z poszczegolnych elementow i ja join'uje... dzieki czemu otrzymuje dlugi string do if'a automatycznie...
Kod
<BR>for ($i=0;$i<$_SESSION['cols'];$i++)<BR>  {<BR>    $skladowa[$i]=" \$poz[$i]=='' ";<BR>  }<BR>  $polecenie=join("and",$skladowa);<BR>


i na koncu chce uzyc tego tak jak wyzej napisalem i nie wiem jak
Kod
if ($polecenie)...


Wiem ze moge zrobic walidacje w js... ale nie znam js i troche nie chce mi sie teraz w niego zaglebiac (jak tego nie rozwale to niestety bede musial napiasc cos co bedzie mi tworzylo dynamicznie kod js sprawdzajacy walidacje - ale to tak na marginesie)

Czekam na Wasze pomysly... bo mi sie skonczyly

ps
dziala mi to przy generacji zapytan do bazy.. myslalem ze w warunku tez pojdzie... a tu lipa.. jak by tu to zrobic... hmm smile.gif
Cezar708
Używaj lepszego bbCode do pisania postów, będą bardziej czytelne i ludzie chętniej będą Ci odpowiadać

1. Być może, źle zrozumiałem, ale ten kod ma być wykonywany po stronie przeglądarki? Czyli jeśli pola są puste to pobieranie z bazy? Niestety tak się nie da.
2. Jeśli jednak jest to wykonywane po stronie PHP nie trzeba joinować i sprawdzać warunek, lepiej jest zrobić tak:

  1. <?php
  2. $ok = true;
  3. for ($i=0;$i<$_SESSION['cols'];$i++){
  4. if ( $poz[$i]=='' ){
  5. $ok = true;
  6. } else {
  7. $ok = false;
  8. break;
  9. }
  10. }
  11.  
  12. if ( $ok )... // ponieważ w $ok trzymasz warunek twojego sprawdzania
  13. ?>
exodus.mc
myslalem nad takim rozwiazaniem.. ale to jest tak ze przy pierwszym wczytaniu to w sumie dziala.. jak caly formularz pusty to pobierz dane.. user cos zmienia i klika "zmien"... nastepuje przeladowanie i niektore ktorej pole moze byc puste. Dlatego mam zapytanie ... and.. and..and - aby tylko prszy wszystkich wolnych wczytalo z bazy...
nospor
Cytat
aby tylko prszy wszystkich wolnych wczytalo z bazy...
O rety... no to zmodyfikuj kod, tak jak chcesz.

  1. <?php
  2. $allEmpty = true;
  3. for ($i=0;$i<$_SESSION['cols'];$i++){
  4. if ( $poz[$i]!='' ){
  5. $allEmpty = false;
  6. break;
  7. }
  8. }
  9. if ($allEmpty) echo 'wszystkkie puste';
  10. else echo 'Nie ktore sa pelne';
  11. ?>
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.