Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak umieścic warunek w zmienej
pa-jong
post 21.02.2008, 16:58:23
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 21.02.2008
Skąd: Warszawa

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


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
Go to the top of the page
+Quote Post
kszychu
post 21.02.2008, 17:01:20
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. <?php
  2. $zmienna = ($warunek ? 'wartosc1' : 'wartosc2');
  3. ?>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Cezar708
post 21.02.2008, 17:01:45
Post #3





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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
Go to the top of the page
+Quote Post
pa-jong
post 21.02.2008, 22:38:55
Post #4





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 21.02.2008
Skąd: Warszawa

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


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" ?

Ten post edytował pa-jong 21.02.2008, 22:41:47
Go to the top of the page
+Quote Post
potreb
post 21.02.2008, 22:59:49
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $dane = ( $_POST['box1'] == "on" ? $pole1 : '');
  3. ?>


Zastosowałeś apostrof, wiec parser nie potraktował jej jak zmiennej

Ten post edytował potreb 21.02.2008, 23:08:47


--------------------

Go to the top of the page
+Quote Post
kszychu
post 21.02.2008, 23:04:47
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


@potreb: a po co Ty umieściłeś zmienną w cudzysłowie? Nadałeś tylko interpreterowi dodatkowej roboty.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
potreb
post 21.02.2008, 23:05:59
Post #7





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


A też prawda sciana.gif to lepiej bez cudzysłowów, zrobiłem i poprzednio błąd.


--------------------

Go to the top of the page
+Quote Post
pa-jong
post 21.02.2008, 23:13:16
Post #8





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 21.02.2008
Skąd: Warszawa

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


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 :]

Ten post edytował pa-jong 22.02.2008, 00:00:37
Go to the top of the page
+Quote Post
Hazel
post 21.02.2008, 23:53:02
Post #9





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


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. ?>


--------------------
Go to the top of the page
+Quote Post
pa-jong
post 22.02.2008, 00:03:11
Post #10





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 21.02.2008
Skąd: Warszawa

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


hmm tez dobry pomysł ale tablic malo uzywalem wiec moge nie ogarnąć wszystkiego ale cos pokombinuje :]

dzięki :]
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 19:34