Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/Sql] zaznaczanie rekordow checkboxami
fredman
post 4.01.2007, 22:48:25
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

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


chodzi mi o cos takiego jak jest naprzyklad na poczcie ze zaznaczamy checkboxa i potem na dole mamy guzik usun i sie kasuje. Chce cos takiego wykozystac do kasowania wpisow w bazie dancyh. Mama juz strone ktroa pobiera dane z bazy i wyswietla mi rekordy. Teraz chial bym dodac walsnie te czekboksy i ten guzik no i jakas funkcja usuwania rzecz jasna. php jest w iekszosci dla mnie raczje zagadka i tak w cimno cos działąm opierajac sie na innych rzeczach wiec nie bardzo wiem jak to zrobic ale domyslem sie ze to chyba jest dosc standardowa opcja z z tymi czekboksami i guzikiem ktory cos tam robi z nimi. moze jest jakies mniej wiecej gotowe rozwiazanie, jakis tutorial czu cos takiego?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
kossa
post 4.01.2007, 23:01:41
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


w formularzu checkbox'y tworzysz tak:
  1. <input type='checkbox" name='box[]' value='id_do_skasowania'>

itd.

potem za pomocą php
  1. <?php
  2. $boxy=$_POST["box"];
  3. for ($i=0;$i<=count($boxy);$i++)
  4. {
  5.  
  6. //wyciagasz kolejne zaznaczone id i robisz z nimi co chcesz
  7.  
  8. $id=$boxy[$i];
  9. mysql_query("delete from tabela where id=$id");
  10. }
  11. ?>

to tak na szybko z reki - moga byc literowki itp.

Łukasz


--------------------
Go to the top of the page
+Quote Post
fredman
post 6.01.2007, 15:19:28
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

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


a jak jeszcze ten guzik zrobic?

Ten post edytował fredman 6.01.2007, 15:19:56
Go to the top of the page
+Quote Post
BORG
post 6.01.2007, 16:38:12
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2006

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


  1. <form action="..." method="POST">
  2. <input type='checkbox" name='box[]' value='id_do_skasowania'>
  3. <input type="submit" value="akceptuj">
  4. </form>


Tak sie dodaje przycisk jesli o to ci chodzi winksmiley.jpg

Ten post edytował BORG 6.01.2007, 16:38:42
Go to the top of the page
+Quote Post
fredman
post 6.01.2007, 18:13:12
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

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


Dzieki wam! wszytko smiga jak trzeba ladnie sie kasuje! smile.gif tylko jedno jaeszcze kosmetyczne pytanie: Jak zrobic zeby po nacisniciu tego kuzika "akceptuj" strona sie od razu odswiezala tak zeby bylo widac rezultat wprowadzonych zmian bez koniecznosci ręcznego odświezania?
Go to the top of the page
+Quote Post
spectron
post 7.01.2007, 18:15:20
Post #6





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


Witam wszystkich.

Mam taki sam problem. Skrypt z checkboxami mam, wszystko ladnie usuwa tak jak chce, ale... zeby doszlo do usuniecia rekordow musze dwa razy kliknac w przycisk. Jak sprawdzalem zawartosc tablicy $_POST to po pierwszym kliknieci juz sa wpisanie w niej nazwy checkboxow, wiec dlaczego dobpiero po drugim kliknieciu wykonuje sie skrypt?
Go to the top of the page
+Quote Post
nospor
post 7.01.2007, 18:18:04
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
wiec dlaczego dobpiero po drugim kliknieciu wykonuje sie skrypt?
pewnie dlatego, ze dzis jest zachmurzone niebo .... smile.gif
podaj kod to pogadamy, byc moze tam jest problem


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
BORG
post 7.01.2007, 18:18:44
Post #8





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 18.12.2006

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


Kod
<script>
location.reload();
</script>

To jest skrypt na odswiezanie.
Go to the top of the page
+Quote Post
spectron
post 7.01.2007, 18:45:49
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


nospor kod jest taki jak powyzej... sprawdzalem tez inne skryptyi bylo to samo, dopiero przy drugim klikniecu wykonuje sie to co jest w petli, czyli usuwanie wybranych rekordow z bazy. ale tego z javascript nie probowalem winksmiley.jpg
Go to the top of the page
+Quote Post
nospor
post 7.01.2007, 18:48:47
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a moze ty dopiero efekt widzisz po drugim kliknieciu bo to jest refresh strony. po pierwszym kliknieciu luknij do bazki i zobacz czy ci skasowalo


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
spectron
post 8.01.2007, 22:37:02
Post #11





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 6.01.2007

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


tego akurat nie robilem winksmiley.jpg






rzeczywiscie, z bazy wszytko mi usuwa winksmiley.jpg dzieki za pomoc smile.gif

jesli chodzi o ten skrypt do odswierzania to nie dziala, tzn dziala ale nie tek jakbym chacial winksmiley.jpg gdy go umieszczam na stronie to ciagle odswierza, a ze uzywam POST to ciagle wyskakuje komunikat " nie mozna odswierzyc strony bez ponownego wyslanie informacji..." tongue.gif

Ten post edytował spectron 8.01.2007, 22:38:04
Go to the top of the page
+Quote Post
=kokos=
post 8.01.2007, 23:02:04
Post #12





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 6.08.2006

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


Jeśli chodzi o odświeżenie stronki skorzystaj z
header
ob_start
ob_end_flush
A w razie kłopotów zajrzyj do działu Najczęstsze błędy.

Ten post edytował =kokos= 8.01.2007, 23:03:03


--------------------
Początkujący
Go to the top of the page
+Quote Post
aniol
post 12.01.2007, 21:25:46
Post #13





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 14.12.2003

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


Cytat(kossa @ 4.01.2007, 23:01:41 ) *
w formularzu checkbox'y tworzysz tak:
  1. <input type='checkbox" name='box[]' value='id_do_skasowania'>

itd.


Przykład dla mnie jak znalazł, akurat bardzo mi się przydał ale mam jeszcze troche
problemów ze składnią i proszę o wyjaśnienie jak to dział name='box[]' Właściwie co ta zmienna zawiera ?

Ja wyświetlam rekordy w taki sposób, że wmieszłem troche html'a w php i teraz
nie wiem jak wpisać to name='box[]' żeby mi błędy nie wyskakiwały.
Chdzi mi o te backslashe bo jakoś utknąłem z tą składną.

Oto mój przykład:
<?
.....
print "<td><input type=\"checkbox\" name=XXXXXX " value=".$pole['id']."></td>.........
?>

Pominąłem nieistone fragmenty kodu.
Go to the top of the page
+Quote Post
TAMLYN
post 12.01.2007, 23:55:36
Post #14





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 6.01.2007
Skąd: Wrocław

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


Jeżeli $box[] jest pusta to numerowanie w kolejnej linii uzupełnia się rosnąco tongue.gif

Czyli tak jakbyś wpisał:
Kod
name=$box[0]
name=$box[1]
name=$box[2]
name=$box[3]

itd.

Co do tego kodu...

Kod
<?php
print "<td><input type=\"checkbox\" name=\"XXXXXX\"  value=\"$pole['id']\"></td>";
?>


Ew.
Piszesz normalnie w HTML'u tyle, że tam, gdzie masz zmienna robisz coś takiego ;P

Kod
<td><input type="checkbox" name="XXXXXX"  value="<?=$pole['id']?>"></td>


Też powinno zadziałać winksmiley.jpg

Ten post edytował TAMLYN 13.01.2007, 00:04:09


--------------------
Wróciłem po długiej przerwie... Bogatszy w wiedzę.
Go to the top of the page
+Quote Post
fredman
post 12.02.2007, 19:31:57
Post #15





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

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


@spectron, czy znalazłeś sposów ba to odświezanie? bo wlasnie za pierwszym klikim wykonuje sie usuniecie ale strona sie nie odświeża do piero drugi klikniecie to robi... wiesz juz jak to zrobic zeby od razu sie odswiezala strona? bo ja dalej nie ma rozwiązania...

Ten post edytował fredman 12.02.2007, 19:33:34
Go to the top of the page
+Quote Post
Cienki1980
post 12.02.2007, 19:50:51
Post #16





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Może po prostu masz w kodzie najpierw wyświetlanie wierszy, a dopiero potem kod od usuwania zaznaczonych wierszy z bazy questionmark.gif

W takim przypadku tak właśnie będzie się dziać.


--------------------
404
Go to the top of the page
+Quote Post
fredman
post 12.02.2007, 20:04:35
Post #17





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

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


kurcze, o tym zupelnie bym nie pomyslal. Przestawilm kolejnosc i teraz działa jak trzeba. DZIEKI!
Go to the top of the page
+Quote Post
erafaelmi
post 22.06.2007, 06:35:57
Post #18





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 8.03.2007

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


Nie wiem czy ktoś spotkał się z takim błędem Notice: Undefined offset: 2 ... line 14

Dotyczy lini $id=$boxy[$i]; Prawidłowo usuwa rekordy tylko może należy gdzieś wyłączyć ten błąd.
Działa to na PHP 5.

  1. <?php
  2. $boxy=$_POST["box"];
  3. for ($i=0;$i<=count($boxy);$i++)
  4. {
  5.  
  6. $id=$boxy[$i];
  7. echo $boxy[$i];
  8. mysql_query("delete from photo where id_photo = '$id'");
  9. }
  10. ?>
Go to the top of the page
+Quote Post
nospor
post 22.06.2007, 08:17:45
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: $i<=
a: $i<
matematyka sie klania tongue.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
qntakt
post 5.08.2007, 20:55:07
Post #20





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.08.2007

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


Hmm... na swojej stronie internetowej, próbowałam zastosować wyżej wymienione usuwanie rekordów checkboxami. Jednak coś mi nie działa więc proszę o pomoc. Wszystko działa, oprócz wspomnianego kasowania danych. Domyślam się, robię gdzieś głupi błąd, ale nie mogę go znaleźć... blink.gif

  1. <h2>Aktualności<hr /></h2>
  2.  
  3. <?php $query='SELECT * FROM aktualnosci ORDER BY data_dodania DESC LIMIT 10';
  4.  $result = mysql_query ($query);
  5.  
  6.  while ($row = mysql_fetch_array($result)) 
  7.  {
  8. echo('<table width="410px"; border="0">') ;
  9.  
  10. echo('<tr><td VALIGN="TOP"><b>'.$row['tytul'].'</b></td>
  11. <td align="right">'.'<i>dodano: </i>'.date("d.m.Y",$row['data_dodania'])
  12. .'<br>'.date("H:i",$row['data_dodania']).'</td></tr>');
  13.  
  14.  
  15. echo('<tr>
  16. <td colspan="2" style="text-align:justify;">'.$row['tresc'].'</td></tr>');
  17.  
  18.  
  19.  
  20. <TD><A HREF="index.php?pokaz=aktualnosci_usun"> Usuń wpis</a></td>
  21.  
  22.  
  23. <td ALIGN="RIGHT"><b>'.$row['autor'].'</b> '.$row['id'].'
  24. <form action="..." method="POST"><input type="checkbox" name="box[]" value="id_do_skasowania">
  25. <input type="submit" value="akceptuj">
  26. </form></td></tr>');
  27.  
  28.  
  29. echo('</table><hr />');
  30.  
  31.  
  32.  
  33. $boxy=$_POST["box"];
  34. for ($i=0;$i<=count($boxy);$i++)
  35. {
  36. $id=$boxy[$i];
  37. mysql_query("delete from aktualnosci where id=$id");
  38. }
  39.  
  40.  
  41. }
  42.  
  43.  
  44. ?>
  45.  
  46. <br>
  47. [ <A HREF="index.php?pokaz=aktualnosci_dodaj"> Dodaj nowy wpis</a> ]
  48.  
  49.  
  50. </TD></TR>



Z góry dziękuję za pomoc. smile.gif

Ten post edytował qntakt 5.08.2007, 21:00:18
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 13.06.2025 - 07:14