Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Formularz wysyłający tylko wybrane dane
Forum PHP.pl > Forum > Przedszkole
castagir
Witam

Chciałbym się dowiedzieć czy istnieje jakaś metoda, która pozwala na wysyłanie tylko kilku wybranych wartości z formularza?

Piszę teraz skrypt skrzynki pocztowej z wiadomościami. Chciałbym zrobić tak:

Jest 5 kolumn w tabelce:
1 to checkbox z zaznaczeniem
2 temat wiadomosci
3 nadawca/odbiorca
4 data (nadania)
5 godzina (nadania)

Chciałbym zrobić tak aby po wyświetleniu tego otwierał się tylko wybrany przez użytkownika temat poprzez kliknięcie na tytuł.
Co do tych checkbox: to chcę zrobić coś takiego:
Pod tabelką będzie <select> z opcjami do wyboru: przeczytane, archiwizuj, usuń.

Teraz pytanie brzmi. Czy ktoś wie jak takie coś napisać?

Bo ja w ogóle nie mam pomyślu a już trohcę próbuję.

Tutaj jest jeszcze skrypt, który już zrobiłem, lecz wydaje mi się, ze to jest zwykły śmietnik:
  1. // Zakładka wiadomości: Wysłane
  2. if ($wiad_zakladka === 'Wysłane') {
  3. $pytanie = $polaczenie_bd->prepare("SELECT * FROM `".$przedrostek."wiadomosci_wyslane`
  4. WHERE nazwa_nadawcy=:param1 AND archiwizacja=:param2 ORDER BY id_wiadomosci DESC");
  5. $pytanie->bindValue(':param1', $uzytkownik_nazwa, PDO::PARAM_STR);
  6. $pytanie->bindValue(':param2', 'nie', PDO::PARAM_STR);
  7. if ($pytanie->execute()) {
  8. $wynik_zapytania = true;
  9. $wynik = $pytanie->fetchAll(PDO::FETCH_ASSOC);
  10. $ilosc = count($wynik);
  11. $i = 0;
  12. while ($i < $ilosc) {
  13. $wiadomosc_id[$i] = $wynik[$i]['id_wiadomosci'];
  14. $wiadomosc_odbiorca[$i] = $wynik[$i]['nazwa_odbiorcy'];
  15. $wiadomosc_temat[$i] = $wynik[$i]['temat_wiadomosci'];
  16. $wiadomosc_tresc[$i] = $wynik[$i]['tresc_wiadomosci'];
  17. $wiadomosc_data[$i] = $wynik[$i]['data_wyslania'];
  18. $i++; } }
  19. else {
  20. $wynik_zapytania = '
  21. <p class="blad">Nie udało się pobrać informacji o profilu!<br />
  22. Spróbuj ponownie lub zgłoś problem do pomocy technicznej.</p>'; }
  23.  
  24. // Utworzenie listy wiadomości:
  25. $ilosc = count($wynik);
  26. $i = 0;
  27. while ($i < $ilosc) {
  28. $wiadomosc_data[$i] = explode(" ", $wiadomosc_data[$i]);
  29. $wiadomosc[$i] = '
  30. <form method="post" action="profil_wlasny.php">
  31. <input type="hidden" name="wiadomosc_nr" value="'.$i.'" />
  32. <input type="hidden" name="wiadomosc_id" value="'.$wiadomosc_id[$i].'" />
  33. <tr>
  34. <td class="lista_td"><center><input type="checkbox" name="oznaczenie['.$i.']" /></center></td>
  35. <td class="lista_td"><input type="submit" name="wiadomosc_temat" value="'.$wiadomosc_temat[$i].'" class="wiadomosc_odsylacz" /></td>
  36. <td class="lista_td">'.$wiadomosc_odbiorca[$i].'</td>
  37. <td class="lista_td">'.$wiadomosc_data[$i][0].'</td>
  38. <td class="lista_td">'.$wiadomosc_data[$i][1].'</td>
  39. </tr>
  40. </form>';
  41. $i++; }
  42.  
  43. // Wypełnienie szablonu treścią, która zostanie wyświetlona w przeglądarce:
  44. $wiadomosci_zakladki = '
  45. <div class="wiadomosci_zakladki_pojemnik">
  46. <form method="post" action="profil_wlasny.php">
  47. <table class="wiadomosci_zakladki">
  48. <tr>
  49. <input type="hidden" name="karta" value="wiadomości" />
  50. <td><input type="submit" name="wiad_zakladka" value="Otrzymane" class="wiadomosci_zakladka" /><img src="./style_kaskadowe/standard/przyciski/pw_szablon.png"></td>
  51. <td><input type="submit" name="wiad_zakladka" value="Wysłane" class="wiadomosci_zakladka" /><img src="./style_kaskadowe/standard/przyciski/pw_szablon.png"></td>
  52. <td><input type="submit" name="wiad_zakladka" value="Archiwum" class="wiadomosci_zakladka" /><img src="./style_kaskadowe/standard/przyciski/pw_szablon.png"></td>
  53. <td><input type="submit" name="wiad_zakladka" value="Wyślij" class="wiadomosci_zakladka" /><img src="./style_kaskadowe/standard/przyciski/pw_szablon.png"></td>
  54. </tr>
  55. </table>
  56. </form>';
  57.  
  58. // Nadanie odpowiedniej klasy CSS dla wyglądu tabeli listy wiadomości:
  59. if ($ilosc < 3) {
  60. $klasa_wiadomosci_lista = 'wiadomosci_lista_100px'; }
  61. else {
  62. $klasa_wiadomosci_lista = 'wiadomosci_lista'; }
  63.  
  64. $wiadomosci_tresc_zakladki = '
  65. <table class="'.$klasa_wiadomosci_lista.'">
  66. <tr><td colspan="5" class="lista_tytul">Wiadomości wysłane:</td></tr>
  67. <tr>
  68. <td class="lista_td1">&nbsp</td>
  69. <td class="lista_td2">&nbsptemat wiadomości</td>
  70. <td class="lista_td3">&nbspodbiorca</td>
  71. <td class="lista_td4">&nbspdata</td>
  72. <td class="lista_td5">godz</td>
  73. </tr>'; }


A to jest z pliku wykonawczego:
  1. elseif ($karta === 'wiadomości') {
  2. echo $wiadomosci_zakladki;
  3. echo $wiadomosci_tresc_zakladki;
  4. $i = 0;
  5. while ($i < $ilosc) {
  6. echo $wiadomosc[$i];
  7. $i++; }
  8. echo '
  9. <tr height="25px"></tr>
  10. </table>
  11. </div>
  12. </div>';
  13. echo '
  14. <select name="metoda_zaznaczonych">
  15. <option value="przeczytane">przeczytane</option>
  16. <option calue="archiwizuj">archiwizować</option>
  17. <option value="kasuj">usunąć</option>
  18. </select>'; }
L0k0
1. Na pewno wiele osób wie jak to napisać ale nie ma gotowców, więc pytanie w stylu: 'niech mi ktoś napisze program, bo nie wiem jak' tutaj nie przejdzie.
2. Jak odpalasz ten projekt to co nie działa? Jakieś błędy? Coś działa inaczej niż powinno?
castagir
1. Mam taką zasadę, że najpierw sam próbuję coś zrobić, a jeśli zrobię wszystko co tylko przyszło mi do głowy i nie osiągnąłem tego co chcę wtedy dopiero szukam pomocy u innych. Chyba wystarczającym dowodem na to jest to, że spróbowałem samemu napisać skrypt.

2. Po wciśnięciu nazwy tematu wczytuje mi się normalnie tak jak chcę sam temat. Problem leży w tym, że nie działają mi zaznaczenia. Umieściłem całą tabelę w jednym formularzu, aby objąć zasięgiem te checkboxy, a następnie mniejsze formularze, odpowiedzialne za otwieranie wiadomości, w nim.
Tutaj jest chyba błąd bo nie można chyba formularzu zawierać w formularzu, a nie mam innego pomysłu na to aby za pomocą samego html i php zrobić tak aby dało się otwierać wiadomości w oddzielnych formularzach, bo jeśli bym zawarł je wszystkie w jednym to nie otworzył bym w końcu żadnego. Z drugiej strony chcę aby jeden formularz mógł operować tymi checkboxami, bo bardzo zależy mi na tym aby dodać takie udogodnienie w skrzynce pocztowej.

Pytanie zadałem tutaj dlatego bo poszukuje pomocy co powinienem zrobić aby rozwiązać problem, jakoś mnie nakierować. Nie oczekuję tego, ze ktoś zrobi tutaj to za mnie.

Na obecną chwilę zacząłem się uczyć javascript, bo coś mi mówi, ze dzięki tym skryptom będę mógł osiągnąć efekt jaki chcę.
com
zamiast tworzyć takie zmienne do przechowywania htmla skorzystaj z heredoc, a co do reszty to tak jak wspomniałeś najlepiej i najprościej javascriptem smile.gif
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.