Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak umieścic warunek w zmienej
Forum PHP.pl > Forum > Przedszkole
pa-jong
Witam. czy mozna umiescic jakos instrukcje warunkową w zmiennej ?
chodzi o cos takiego..


Kod
     <?php
    $nazwa_zmiennej = TUTAJ PODAJĘ WARUNEK NP: if ($warunek) { warunek1 } else { warunek2 }
    ?>



tylko w takim przypadku zwraca blędy. Mozna to jakoś rozwiązać questionmark.gif

generalnie chceaby dane z formularza... zostaly zapisane do pliku ale w postaci zaleznej od tego które pola chceckbox są zaznaczone..

narazie doszedłem dotego aby dane z formularza wywietlic na stronie, tylko jak je zapisac do pliku ?

chcialem to zrobic na zasadzie
przypisania do zmiennej &dane instrukcji warunkowej która wykonuje moje zalozenia.. i tą zmienną pod postacia wykonaną przez warunek zapisac do pliku..

ponizej kody formularza i pliku odbierającego dane



plik form.html

  1. <table><form action="read.php" method="post">
  2. <tr>
  3. <td><center><b>Lp.</b></center></td><td><b>Nazwa </b></td><td align="center">Rozmiar</td><td align="center">Cena</td><td align="center">Pokaż</td></tr>
  4. <tr>
  5. <td><center><b>1.</b></center></td>
  6. <td><input type="text" name="nazwa1" style="width: 100px; "></td>
  7. <td align="center"><input type="text" name="rozm1" style="width: 50px; "></td>
  8. <td align="center"><input type="text" name="cen1" style="width: 50px; "></td>
  9. <td align="center"><input type="checkbox" name="box1" style="width: 50px; "></td></tr>
  10.  
  11. <tr>
  12. <td><center><b>2.</b></center></td>
  13. <td><input type="text" name="nazwa2" style="width: 100px; "></td>
  14. <td align="center"><input type="text" name="rozm2" style="width: 50px; "></td>
  15. <td align="center"><input type="text" name="cen2" style="width: 50px; "></td>
  16. <td align="center"><input type="checkbox" name="box2" style="width: 50px; "></td></tr>
  17.  
  18. <tr>
  19. <td><center><b>3.</b></center></td>
  20. <td><input type="text" name="nazwa3" style="width: 100px; "></td>
  21. <td align="center"><input type="text" name="rozm3" style="width: 50px; "></td>
  22. <td align="center"><input type="text" name="cen3" style="width: 50px; "></td>
  23. <td align="center"><input type="checkbox" name="box3" style="width: 50px; "></td></tr>
  24.  
  25. <tr>
  26. <td> <input type="submit" value="wyslij"></td></tr>
  27.  
  28. </form>
  29. </table>




plik read.php

Kod
    <?php
    
   $_POST['pole1']  ="<tr><td>".$_POST['nazwa1']."</td><td  align='center'>".$_POST['rozm1']."</td><td  align='center'>".$_POST['cen1']."</td></tr>";
   $_POST['pole2']  ="<tr><td>".$_POST['nazwa2']."</td><td  align='center'>".$_POST['rozm2']."</td><td  align='center'>".$_POST['cen2']."</td></tr>";
   $_POST['pole3']  ="<tr><td>".$_POST['nazwa3']."</td><td  align='center'>".$_POST['rozm3']."</td><td  align='center'>".$_POST['cen3']."</td></tr>";
    
    
    
    
    echo "<table>
   <tr><td><b>Nazwa</b></td><td  align='center'><b>Rozmiar</b></td><td  align='center'><b>Cena</b></td></tr>";
    
    
    if (!empty($_POST['box1'])) {  
    
    echo $_POST['pole1'];  
    
    }
    
    if (!empty($_POST['box2'])) {  
    
    echo $_POST['pole2'];  
    
    }
    
    if (!empty($_POST['box3'])) {  
    
    echo $_POST['pole3'];  
    
    }
    
    
    echo "</table>";
    
    ?>



pozdrawiam
kszychu
  1. <?php
  2. $zmienna = ($warunek ? 'wartosc1' : 'wartosc2');
  3. ?>
Cezar708
zawsze możesz użyć takiej składni:

  1. <?php
  2. $nazwa_zmiennej = ( $warunek ) ? 'nazwa spełniająca warunek' : ' nazwa nie spalniajaca warunek ';
  3. ?>


działa to dokładnie tak samo jak

  1. <?php
  2. if ( $warunek ){
  3. $nazwa_zmiennej = 'nazwa spełniająca warunek';
  4. } else {
  5. $nazwa_zmiennej = 'nazwa nie spełniająca warunek';
  6. }
  7. ?>


Pozdrawiam
pa-jong
hmmm
a czemu, kiedy kod wyglada tak..

Kod
<?php

$pole1 ="<tr><td>".$_POST['nazwa1']."</td><td align='center'>".$_POST['rozm1']."</td><td align='center'>".$_POST['cen1']."</td></tr>";



$dane = ( $_POST['box1'] == "on" ? '$pole1' : '');

$file = "baza.txt";

$fp = fopen($file, "w");

flock($fp, 2);

fwrite($fp, $dane);

flock($fp, 3);

fclose($fp);

?>



do pliku zapisuje nie to co jest przypisane do zmiennej $pole1 na poczatku kodu (czyli dane z formularza umieszczone w tabeli) tylko poprostu ciąg znaków "$pole1" ?
potreb
  1. <?php
  2. $dane = ( $_POST['box1'] == "on" ? $pole1 : '');
  3. ?>


Zastosowałeś apostrof, wiec parser nie potraktował jej jak zmiennej
kszychu
@potreb: a po co Ty umieściłeś zmienną w cudzysłowie? Nadałeś tylko interpreterowi dodatkowej roboty.
potreb
A też prawda sciana.gif to lepiej bez cudzysłowów, zrobiłem i poprzednio błąd.
pa-jong
czy apostrof czy cudzyslów czy tez nic, dzieje sie o samo. do pliku zapisuje sie $pole1 a chce aby zapisal sie fragmen tabeli z danymi z formularza..

Edit: mój błąd mialem 2 linie z kodem dodaną jako komentarz i nią tez edytowalem dlatego sie nie zmienialo,

chcialbym sie jeszcze dowiedziec jak połączyc kilka warunków.. tzn

jest tak
Kod
$dane = ( $_POST['box1'] == "on" ? $pole1 : '');




a chce aby było mniejwicej tak
Kod
$dane =   ( $_POST['box1'] == "on" ? $pole1 : '')
               ( $_POST['box2'] == "on" ? $pole2 : '')
               ( $_POST['box3'] == "on" ? $pole3 : '')
;

jak oddzielic te warunki ?


ok mam, wstawiam kod dla potomnych :]

Kod
$dane = ( $_POST['box1'] == "on" ? $pole1 : '')."\n".
     ( $_POST['box2'] == "on" ? $pole2 : '')."\n".
     ( $_POST['box3'] == "on" ? $pole3 : '');



dzieki za pomoc panowie
pozdrawiam :]
Hazel
No to chyba musisz zrobić więcej niż jedną zmienną (na przykład tablicę?), jeśli chcesz przechowywać wartości warunków w niej, na przykład:
  1. <?php
  2. $dane[1] = ( $_POST['box1'] == "on" ? $pole1 : '');
  3. $dane[2] = ( $_POST['box2'] == "on" ? $pole2 : '');
  4. $dane[3] = ( $_POST['box3'] == "on" ? $pole3 : '');
  5. ?>
pa-jong
hmm tez dobry pomysł ale tablic malo uzywalem wiec moge nie ogarnąć wszystkiego ale cos pokombinuje :]

dzięki :]
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.