Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]problem z odwołaniem
xyxy
post 12.06.2009, 10:51:21
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Witam,

Mam problem, bo chyba nie wiem dlaczego nie mogę się odwołać do name w checkboxie. Mam coś takiego:


  1. <?php
  2. echo"<input type=\"checkbox\" name=\"".$i."\" value=\"".$status."\"";
  3.        if ($status == 'ok') echo' checked=\"checked\"';
  4.        echo'/>';
  5. ?>


Potrzebuje sie odwołać do checkboxa, próbowałem tak: $_POST[$i], $_POST['$i'], $_POST["$i"], $_POST[".$i."] i lipa, pusto

Ten post edytował xyxy 12.06.2009, 10:58:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
ignas1987
post 12.06.2009, 10:54:57
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 3
Dołączył: 10.11.2008
Skąd: Radom

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


że jak?? Mógłbys poprawić ten kod??


--------------------
Kod
Kiedyś Windows
Teraz Linux
A kiedyś, przed kiedyś Workbench
Go to the top of the page
+Quote Post
greg.paw.90
post 12.06.2009, 10:58:48
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


Witam, ja do checkboxów odwołuję się w następujący sposób:

  1. <?php
  2. if(isset($_POST['name_checkboxa'])){
  3.        ....
  4.        }
  5. ?>


Ten post edytował greg.paw.90 12.06.2009, 10:59:30
Go to the top of the page
+Quote Post
ignas1987
post 12.06.2009, 11:03:41
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 3
Dołączył: 10.11.2008
Skąd: Radom

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


A co masz w zmiennej ".$i." bo to jest właśnie ta nazwa...


--------------------
Kod
Kiedyś Windows
Teraz Linux
A kiedyś, przed kiedyś Workbench
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 11:05:47
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Próbowałem tak: echo $_POST[$i]; $_POST["$i"]; $_POST[".$i."]; i lipa, pusto.
Wszystko jest w pętli, gdzie za każdym razem $i jest zwiększane o 1, a $status pobierane jest z bazy. Niby działa, ale nie moge sie dostać do wartości check boxa. Znaczniki <form></form> też są:
  1. <?php
  2. echo '<form method=\"POST\" action=\"wybor.php\" target=\"_self\">';
  3. ?>

echo $i; i echo $status; działa
Go to the top of the page
+Quote Post
sowiq
post 12.06.2009, 11:09:48
Post #6





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


W pliku wybor.php wstaw na początku:
  1. <?php
  2. print_r($_POST);
  3. ?>
i zobacz jakie masz klucze w tablicy $_POST.
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 11:27:53
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


Póki co mam tyle:
  1. <?php ob_start();
  2. <!DOCTYPE html
  3.    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html>
  6. <head>
  7.    <meta http-equiv="Content-Type" content="text/html; CHARSET=utf-8" />
  8.    <link rel="stylesheet" href="style.css" type="text/css" />
  9.    <meta name="Author" content="autor strony" />
  10.    <title>Klienci</title>
  11. </head>
  12. <body>
  13.  
  14. <?php
  15.  
  16.    $mysql_server = "****";
  17.    $mysql_admin = "****";
  18.    $mysql_pass = "****";
  19.    $mysql_db = "****";
  20.    @ $db = mysql_connect($mysql_server, $mysql_admin, $mysql_pass) or die ('<br />Brak połączenia z serwerem MySQL.');
  21.    @mysql_select_db($mysql_db) or die ('<br />Błąd wyboru bazy danych.');
  22.  
  23.    $idumowy = $_GET['id'];
  24.    
  25.        $query = "SELECT * FROM `umowy` WHERE id_um = ".$idumowy."" ;
  26.        $R = mysql_query($query);
  27.  
  28.  
  29. if($row = mysql_fetch_array($R, MYSQL_ASSOC))
  30.    {
  31.    $data_ex = explode('-',$row['data_p']);
  32.    $rok = $data_ex[0];
  33.  
  34.        $query2 = "SELECT * FROM `oplaty` WHERE idumowy = ".$idumowy." ORDER BY id_op ASC" ;
  35.        $R2 = mysql_query($query2);
  36.        
  37. echo '<form method="POST" action="wybor.php" target="_self">';
  38.    for($i=0;$i<$row2 = mysql_fetch_array($R2, MYSQL_ASSOC);$i++)
  39.        {
  40.            echo'<div>';
  41.                $status = $row2['status'];
  42.                echo $status;
  43.  
  44.        echo"<input type=\"checkbox\" name=\"".$i."\" value=\"".$status."\"";
  45.        if ($status == 'zaplacony') echo' checked=\"checked\"';
  46.        echo'/>';
  47.  
  48.        if ($data_ex[1] == 1)
  49.                echo'styczeń '.$data_ex[0];
  50.                if ($data_ex[1] == 2)
  51.                echo'luty '.$data_ex[0];
  52.                if ($data_ex[1] == 3)
  53.                echo'marzec '.$data_ex[0];
  54.                if ($data_ex[1] == 4)
  55.                echo'kwiecień '.$data_ex[0];
  56.                if ($data_ex[1] == 5)
  57.                echo'maj '.$data_ex[0];
  58.                if ($data_ex[1] == 6)
  59.                echo'czerwiec '.$data_ex[0];
  60.                if ($data_ex[1] == 7)
  61.                echo'lipiec '.$data_ex[0];
  62.                if ($data_ex[1] == 8)
  63.                echo'sierpień '.$data_ex[0];
  64.                if ($data_ex[1] == 9)
  65.                echo'wrzesień '.$data_ex[0];
  66.                if ($data_ex[1] == 10)
  67.                echo'październik '.$data_ex[0];
  68.                if ($data_ex[1] == 11)
  69.                echo'listopad '.$data_ex[0];
  70.                if ($data_ex[1] == 12)
  71.                echo'grudzień '.$data_ex[0];
  72.                if($data_ex[1] == 12) {
  73.                    $data_ex[1] = 0;
  74.                    $data_ex[0]++;
  75.                    }
  76.                $data_ex[1]++;
  77.                echo'</div>';
  78.        }
  79.    }
  80. ?>
  81. </form>
  82. </body>
  83. </html>



i wyświetla mi to:



i tyle działa, a jak chce sie potem odwołać do checkboxa np. echo $_POST[$i]; to nic nie ma a widze po wpisaniu echo $i; i echo $status; mają poprawne dane.

Ten post edytował xyxy 12.06.2009, 11:32:53
Go to the top of the page
+Quote Post
ignas1987
post 12.06.2009, 11:28:40
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 3
Dołączył: 10.11.2008
Skąd: Radom

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


z name=\"".$i."\" zmień na name=\"$i\" -> spróbuj


--------------------
Kod
Kiedyś Windows
Teraz Linux
A kiedyś, przed kiedyś Workbench
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 11:37:55
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


nic sie nie zmienia, dalej to samo ;/
Go to the top of the page
+Quote Post
Wicepsik
post 12.06.2009, 11:38:52
Post #10





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(sowiq @ 12.06.2009, 12:09:48 ) *
W pliku wybor.php wstaw na początku:
  1. <?php
  2. print_r($_POST);
  3. ?>
i zobacz jakie masz klucze w tablicy $_POST.

Zrobiłeś?


--------------------
Go to the top of the page
+Quote Post
mac_fly
post 12.06.2009, 11:42:07
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


  1. <?php
  2. echo'<input type="checkbox" name="'.$i.'" value="'.$status.'">';
  3. ?>
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 11:50:06
Post #12





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


wyświetla:


edit: print_r($_POST); nic nie wyświetla

Ten post edytował xyxy 12.06.2009, 11:54:31
Go to the top of the page
+Quote Post
mac_fly
post 12.06.2009, 11:54:46
Post #13





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


Zobacz tak:
  1. <?php
  2. echo'<input type="checkbox" name="'.$i.'" value="'.$status.'" ';
  3.        if ($status == 'ok') echo' checked="checked"';
  4.        echo'/>';
  5. ?>


A tak na marginesie to pisałes ze tak próbowałes: $_POST[$i], $_POST['$i'], $_POST["$i"], $_POST[".$i."].
A nie lepiej $_POST['name']?
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 12:08:52
Post #14





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


teraz mam to samo co na początku, działa, ale POST nie. Potrzebuję zrobić coś takiego, że po zaznaczeniu lub odznaczeniu checkboxa chce uaktualnić status w bazie, a jak mam to zrobić jak nie moge pobrać wartości checkboxa ;/

Ten post edytował xyxy 12.06.2009, 12:09:56
Go to the top of the page
+Quote Post
sowiq
post 12.06.2009, 12:14:20
Post #15





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Kolego ~xyxy, Twój problem najwyraźniej polega na tym, że nie umiesz czytać albo stosować się do dobrych rad.

Napisałem Ci dużo wcześniej, żebyś zrobił: print_r($_POST) na początku pliku. Jeśli byś się zastosował do mojej rady, to zapewne zauważyłbyś, że POST'em lecą tylko te nazwy checkbox'ów, które są zaznaczone.

Dlatego jeśli chcesz uaktualniać status (czyli również wyrzucać z bazy odznaczone opcje), to najpierw musisz wyczyścić wszystkie, a dopiero później wstawiać kolejno wysłane dane. Dzięki temu w bazie będziesz miał tylko aktualnie zaznaczone dane.
Go to the top of the page
+Quote Post
xyxy
post 12.06.2009, 12:24:36
Post #16





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 22.01.2009

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


ok, wstawiam w ty miejscu echo $_POST[$i]; :
  1. <?php
  2. echo'<input type="checkbox" name="'.$i.'" value="'.$status.'" ';
  3.       if ($status == 'zaplacony') echo' checked="checked"';
  4.       echo'/>';
  5.  
  6. echo $_POST[$i]; //////////
  7.  
  8.        if ($data_ex[1] == 1)
  9. ?>

i przechodzi w pętli przez wszystkie checkboxy, z czego jeden sie sam zaznacza, jak widać na załączonym screenie, więc dlaczego go tez nie widzi
Go to the top of the page
+Quote Post
Wicepsik
post 12.06.2009, 15:43:37
Post #17





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Nie wyświetla Ci ponieważ nie wysyłałeś danych $_POST

  1. <?php
  2. if (isset($_POST['submit'])
  3. {
  4. // wyświetlanie z bazy
  5. }
  6. else
  7. {
  8. // wyświetlanie po wysłaniu
  9. }
  10. ?>


oraz

  1. <?php
  2. echo' checked=\"checked\"';
  3. //na
  4. echo' checked="checked"';
  5. ?>

Nie potrzebne są backslash

Ten post edytował Wicepsik 12.06.2009, 15:55:55


--------------------
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 - 00:03