Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] sprawdzanie wartośći i zaznaczenie przez checked
!*!
post 24.02.2008, 12:42:15
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Kod
<input type="radio" name="dno" value="1" /> prywatne<br />
<input type="radio" name="dno" value="0" /> publiczne<br />


Szukając na forum jednak niczego nie znalazłem w tym temacie... zabardzo nie wiem jak sprawdzić które pole jest zaznaczone

Kod
<input type="radio" checked>


tak jest zaznaczone tylko jak to sprawdzić przez baze?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Hazel
post 24.02.2008, 12:46:21
Post #2





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

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


Jak przez bazę?!

W pliku php odczytujesz po prostu $_POST['dno'] i wartość tej zmiennej mówi Ci, które pole jest zaznaczone - jeśli to jest pole prywatne, to w Twoim przypadku ta zmienna będzie mieć wartość 1, jeśli zaznaczone zostało pole publiczne, zmienna otrzyma wartość 0. Oczywiście, musisz przed tymi inputami dodać <form method="post" action="jakisplik.php"> i zamknąć znacznik na końcu.


--------------------
Go to the top of the page
+Quote Post
!*!
post 24.02.2008, 12:50:43
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nie chodzi mi o przesłanie danych do bazy, tylko odczyt z bazy czy jest 0 lub 1 i pokazanie które pole jest zaznaczone na podstawie danych pobranych z bazy


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Hazel
post 24.02.2008, 12:53:41
Post #4





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

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


no to pobierasz z bazy, potem stosujesz mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual i odczytujesz na przykład $row['prywatne']:
  1. <?php
  2. echo '<input type="radio" name="dno" value="1"';
  3. if ($row['prywatne'] == 1) echo ' checked';
  4. echo '>';
  5. ?>


Coś w tym rodzaju, to $row['prywatne'] zależy oczywiście od tego, jaką nazwę nadasz zmiennej pobierającej rekord z bazy, i jak się nazywa odpowiednia kolumna w tej bazie.


--------------------
Go to the top of the page
+Quote Post
!*!
post 24.02.2008, 13:04:59
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


hmm coś takiego?

  1. <?php
  2. $zapytanie = "SELECT status_gg, status_tlen, status_jabber FROM prywata WHERE login = '$ids'";
  3. $idzdo = mysql_query($zapytanie) or die(mysql_error());
  4.  
  5. ?>
  6. <form action="ttt.php" method="POST">
  7. <?php
  8. while ($zapytanie = mysql_fetch_array($idzdo)) 
  9. {
  10.  
  11. echo '<input type="radio" name="status_gg" value="1"';
  12. if( (int)$zapytanie['status_gg'] !== 1) { echo ' checked';}
  13. echo '>';
  14.  
  15. echo '<input type="radio" name="status_tlen" value="1"';
  16. if( (int)$zapytanie['status_tlen'] !== 1) { echo ' checked';}
  17. echo '>';
  18.  
  19. echo '<input type="radio" name="status_jabber" value="1"';
  20. if( (int)$zapytanie['status_jabber'] !== 1) { echo ' checked';}
  21. echo '>';
  22.  
  23.  
  24. }
  25.  
  26. ?>
  27. <input type="submit" value="zmien dane">


tylko że nic nie jest wyświetlane

Ten post edytował !*! 24.02.2008, 13:05:36


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Hazel
post 24.02.2008, 13:10:04
Post #6





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

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


No bo widzisz. Jeśli chcesz to tak zrobić, to nie radio tylko checkbox. Pamiętaj, że radio ma tylko jedną możliwą opcję wyboru. A jak zrobisz 3 checkboxy to możesz miec zaznaczone wszystkie, żaden, 1 lub 2, full total wypas. Tutaj zdecydowanie bardziej pasują checkboxy na logikę.
Po drugie to zmień raczej nazwę $zapytanie, bo występuje w dwóch miejscach i jest dość myląca.
Skoro nic nie wyświetla, to zrób echo mysql_num_rows($idzdo) i zobacz, czy w ogóle z bazy są wyniki.
Ale ten submit na końcu strony to chyba jednak wyświetla? Nie za bardzo widzę inną opcję.

Ten post edytował Hazel 24.02.2008, 13:10:20


--------------------
Go to the top of the page
+Quote Post
!*!
post 24.02.2008, 13:16:47
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


tak submit jest wyświeltany bo znajduje sie poza. Tylko widzisz, checkbox jak sam napisałeś może być zaznaczany kilka razy, radio było dla mnie odpowiednie ponieważ chce aby to wyglądało tak:

Kod
[]prywatne []publiczne


i sprawdzanie z bazy która wartość jest zaznaczona

jeśli prywatna to wyglada to tak

Kod
[x]prywatne []publiczne


je śli publiczna to tak

Kod
[]prywatne [x]publiczne


z checkbox jest o tyle niewygodnie że moge zaznaczyć

Kod
[x]prywatne [x]publiczne


a to już będzie błedne... Ważne aby była wybrana tylko jedna opcja..


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Hazel
post 24.02.2008, 14:47:29
Post #8





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

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


No to w takim razie zupełnie inaczej.
  1. $zapytanie = "SELECT status_gg, status_tlen, status_jabber FROM prywata WHERE login = '$ids'";
  2. $idzdo = mysql_query($zapytanie) or die(mysql_error());
  3.  
  4. ?>
  5. <form action="ttt.php" method="POST">
  6. <?php
  7. $zapytanie = mysql_fetch_array($idzdo);
  8. $gg['pub'] = '';
  9. $gg['priv'] = '';
  10. if( (int)$zapytanie['status_gg'] !== 1) $gg['pub'] .= ' checked';
  11. else $gg['priv'] .= ' checked';
  12. echo '<input type="radio" name="status_gg" value="1"'.$gg['priv'].'>';
  13. echo '<input type="radio" name="status_gg" value="0"'.$gg['pub'].'>';
  14. echo '<input type="submit" value="zmien dane">';


Analogicznie dla Jabbera i Tlenu. Musisz se dostosować zmienne $gg['priv'] i $gg['pub'], bo nie wiem czy u Ciebie w bazie 1 oznacza publiczny czy prywatny smile.gif

Ten post edytował Hazel 24.02.2008, 14:48:06


--------------------
Go to the top of the page
+Quote Post
--!*!--
post 24.02.2008, 22:38:07
Post #9





Goście







Kod
Fatal error: Cannot use assign-op operators with overloaded objects nor string offsets in /var/www/prv.php on line 14


Kod
if( (int)$zapytanie['status_gg'] !== 1) $gg['pub'] .= ' checked';


to co jest w tym źle?
Go to the top of the page
+Quote Post
leniu
post 24.02.2008, 22:45:49
Post #10





Grupa: Zarejestrowani
Postów: 17
Pomógł: 2
Dołączył: 6.02.2008

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


Strzelam, ze nie ma takiego operatora logicznego jak "!==", a jedynie "!=".
Go to the top of the page
+Quote Post
!*!
post 25.02.2008, 13:36:27
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


sprawdziłem też to jednak bład jest nadal

emm możnaby było jeszcze zrobić to na takiej zasadzie

  1. <?php
  2. $zapytanie = "SELECT status_gg, status_tlen, status_jabber FROM prywata WHERE login = '$ids'";
  3. $idzdo = mysql_query($zapytanie) or die(mysql_error());
  4.  
  5. while ($zapytanie2 = mysql_fetch_array($idzdo)) 
  6. {
  7.  
  8. if ((int)$zapytanie2[status_gg] !== 1) {
  9.  $html[1] = ' checked';
  10. } else {
  11.  $html[0] = ' checked';
  12. }
  13.  
  14. }
  15. ?>
  16.  
  17. <form action="npanel.php?gog=oep" method="POST">
  18.  
  19. gg:<br />
  20. <input type="radio" name="status_gg" value="1" <?=$html[1]?> /> prywatny<br />
  21. <input type="radio" name="status_gg" value="0" <?=$html[0]?>/> publiczny<br />
  22. <br /><br />


jednak tu też coś jest nie tak...


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
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: 20.07.2025 - 02:54