Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Formularz i checkbox
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Mam prosty problem, jak za pomocą <input type="checkbox" /> można zmienić lub usunąć rekord (lub dwa, lub więcej na raz). Mam teraz tak, że za pomocą linku <a href=""> a chciałbym zmienić pole 'wyswietlenie'. Załóżmy, że jest ustawione domyślnie na '0' - tzn. wyświetlanie na stronie jest tylko gdy ma status '1'. Gdy ma '0' nie widać go. Lub jak usunąć za pomocą pola checkbox?

Tutaj mam mój dotychczasowy kod usuwania danych:
  1. if (isset ($_GET['id_wyd']))
  2. {
  3. $sql="DELETE FROM
  4. wiadomosci
  5. WHERE
  6. id={$_GET['id_wyd']};";
  7. mysql_query ($sql);
  8. }


Co powinienem tutaj zmienić? I czy jest możliwość masowego użycia pola 'checkbox' ?
CuteOne
  1. <form method="post" action="index.php?action=delete">
  2. Usuń:<br>
  3. <input type="radio" name="delete" value="1">Jeden rekord <br>
  4. <input type="radio" name="delete" value="2">Dwa rekordy <br>
  5. <input type="radio" name="delete" value="3">Trzy rekordy <br>
  6.  
  7. <input type="submit" name="s" value="Usuń">


  1.  
  2. if(isset($_POST['s'])) {
  3.  
  4. $delete = !empty($_POST['delete']) && $_POST['delete'] > 0 && $_POST['delete'] < 4
  5. ? $_POST['delete']
  6. : 1;
  7.  
  8. //usunięcie z bazy to już prysz ;)

andrzejlechniak
Średnio mi to pomogło, może wyjaśnię jeszcze raz o co mi biega. Mam taki wygląd w panelu administracyjnym:

id -- nazwa -- opis -- usuń | publikuj -- edytuj

i chodzi o to, aby te przyciski usuń | publikuj były jako akcja <input type="checkbox" /> i za pomocą tego mogły się dziać określone akcje, czyli np. jak zaznaczam w polu (checkbox) usuń i zaznaczam jako button 'usuń' aby te zaznaczone elementy prowadziły do konkretnej akcji. Jak mam łącze index.php?id=osoby&id_osoby (po kliknięciu na usuń po zaznaczeniu na polu typu checkbox), aby za pomocą łącza usuwały się dane.
CuteOne
  1.  
  2. while($row = mysql_fetch_array($query)) {
  3.  
  4. $write .= '<input type="checkbox" name="delete_'.$row['user_id'].'" value="1"> Usuń';
  5. }
  6.  
  7. // jak to wsadzić do formularza powinieneś wiedzieć więc przejde do odbierania danych z formularza
  8.  
  9. while($row = mysql_fetch_array($query)) {
  10.  
  11. if(!empty($_POST['delete_'.$row['user_id']])) { //usun dla tego użytkownika }
  12. }
andrzejlechniak
Napisałem coś takiego:

Wyświetlanie danych z bazy:
  1. $wiad_tak = $_POST['wiadomosc'];
  2. $sql = 'SELECT * FROM referencje ORDER BY id';
  3. $result = mysql_query($sql);
  4. while($row = mysql_fetch_array($result))
  5. {
  6. extract($row);
  7. echo '<table class="admin_panel_dane">
  8. <tr>
  9. <td width="10%">'.$id.'</td>
  10. <td width="35%">'.$nazwa.'</td>
  11. <td width="40%">'.$opis;
  12.  
  13. if(isset($wiad_tak)) {
  14. echo 'tak';
  15. }
  16. else {
  17. echo 'nie';
  18. }
  19.  
  20. echo '</td>
  21. <td width="15%">
  22. <a href="admin.php?id=admin_kategorie_w&id_up='.$id.'" title="aktualizuj kategorię">Zmień </a>|
  23. <a href="admin.php?id=admin_kategorie_w&id_kat='.$id.'" OnClick="return confirm(\'Czy napewno chcesz skasować?\');" title="usuń kategorię"> Usuń</a>
  24. </td>
  25. </tr>
  26. </table>';
  27. }

jeśli 'tak' - to ma być pole po sprawdzeniu pola checkboxem.

A dodaję tak:

  1. <div class="log_form">
  2. Chcę dostawać wiadomość zwrotną:
  3. <input type="checkbox" name="wiadomosc" value="checked" />
  4. </div>


I teraz jest taki problem, że jak dodaję to mam wynik 'tak' ale gdy odświeżę stronę (znaczy jeszcze raz załaduję, ale bez ponownego przesyłania formularza to zawsze mam 'nie'). Czemu?

PS. Dodam tylko, że pole $wiad_tak ma TYLKO informować czy ma być wyświetlona wiadomość czy nie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.