Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z checkboxami
!!_:!SnAkE!:_!!
post 15.05.2005, 14:04:50
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 14.04.2005

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


Problem mam taki: mam w formularzu 50 checkboxów:
  1. <input type="checkbox" name="cecha1" value="władczy">
  2. <input type="checkbox" name="cecha2" value="nietolerancyjny">nietolerancyjny
  3. <input type="checkbox" name="cecha3" value="zarozumiały">zarozumiały
  4. <input type="checkbox" name="cecha4" value="obrazalski">obrazalski
  5. <input type="checkbox" name="cecha5" value="wredny">wredny
  6. <input type="checkbox" name="cecha6" value="dokuczliwy">dokuczliwy
  7. <input type="checkbox" name="cecha7" value="lekcewazący">lekcewazący
  8. <input type="checkbox" name="cecha8" value="podejrzliwy">podejrzliwy
  9. <input type="checkbox" name="cecha9" value="zdradliwy">zdradliwy
  10. (..)

i potem dodaje je do tabeli. Tabela ma id urzytkownika i kolumnę CHARAKTER:

  1. <?php
  2.  
  3. for($i=1; $i<52; $i++){
  4. if($_POST['cecha'.$i])
  5. $charakter.=','.$_POST['cecha'.$i]; 
  6. }
  7. $wpis=&#092;"insert into charakter values('\".$_SESSION['Id'].\"','\".$charakter.\"')\";
  8. mysql_query($wpis);
  9.  
  10. ?>


problem jest taki: chciałbym, ze jesli ktos zazyczy sobie edytowania tych danych, i wejdzie po raz 2 w ten formularz, to zeby cechy które wczesniej zaznaczyl byly zaznaczone po ponownym wejsciu... nie wiem jak tego dokonac, myslałem najpierw o tym, zeby sprawdzac jakas funkcją pzreszukujaca striinga i jezeli napis zawiera string np "mily" to checkbox mily jest zaznaczony... tylko tak: nie wiem jaka jest do tego funkcja i za bardzo nie wiem jak ja zastosowac, nie wiem tez jak zaznazyc checkboxa w uzaleznieniu od wyniku funkcji... pomocy! z gory dziekuje...
Go to the top of the page
+Quote Post
hwao
post 15.05.2005, 14:11:42
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Jezeli masz to value w tablicy to nie ma problemu podczas wysietlani ssprawdzasz
  1. <?php
  2.  
  3. $zawody = array( 'lekarz', 'ktostam', 'polityk:))' );
  4. foreach( $zawody As $zawod ) {
  5. if( isSet( $_POST[$zadow] ) ) { // mozna uzywc tez array_key_ex...
  6. echo '<input checked=\"checked\">'.$zadow;
  7. }
  8. else{
  9. echo '<input >'.$zadow;
  10. }
  11. }
  12. ?>

Pozatym czy nie lepiej
  1. <input type="checkbox" name="cecha[]" value="władczy">

teraz to jest tablica... w tamtym przypaku to zmiene ponumerowane
Go to the top of the page
+Quote Post
!!_:!SnAkE!:_!!
post 15.05.2005, 14:29:25
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 14.04.2005

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


nie kumam tego zapisu...

foreach( $zawody As $zawod ) {
if( isSet( $_POST[$zawod] ) ) { // mozna uzywc tez array_key_ex...
echo '<input checked="checked">'.$zadow;
}
else{
echo '<input >'.$zawod;

co to jest $zawod?

POproswiłbym o jasniejsze wytłumaczenie, bo nie rozumiem, na jakiej zasadzie skrypt zaznacza chesckoxy.
teraz wyglada to u mnie tak:

<input type="checkbox" name="cecha[]" value="ciepły">ciepły<BR>
<input type="checkbox" name="cecha[]" value="troskliwy">troskliwy<BR>
<input type="checkbox" name="cecha[]" value="przyjacielski">przyjacielski<BR>
<input type="checkbox" name="cecha[]" value="na luzie">na luzie<BR>
<input type="checkbox" name="cecha[]" value="zaradny">zaradny<BR>
(...)
  1. <?php  
  2. $charakter = implode(',', $_POST['cecha']);
  3. if($_SESSION['Id']){
  4. require('connect.php');
  5.  
  6. $odczyt='select * from charakter where id=\"'.$_SESSION['Id'].'\"';
  7. mysql_query($odczyt);
  8. if(mysql_affected_rows($conn)!=0){
  9. $sql=('UPDATE charakter SET id=\"'.$_SESSION['Id'].'\",cechy=\"'.$charakter.'\" WHERE id=\"'.$_SESSION['Id'].'\"');
  10. }
  11. else {
  12.  
  13. $wpis=&#092;"insert into charakter values('\".$_SESSION['Id'].\"','\".$charakter.\"')\";
  14. mysql_query($wpis);
  15.  
  16. }
  17. }
  18.  
  19.  
  20. ?>


Ten post edytował !!_:!SnAkE!:_!! 15.05.2005, 15:00:53
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: 25.04.2024 - 00:39