Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Formularz wysyłający tylko wybrane dane
castagir
post
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

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


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>'; }
Go to the top of the page
+Quote Post
L0k0
post
Post #2





Grupa: Zarejestrowani
Postów: 161
Pomógł: 4
Dołączył: 18.03.2011

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


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?
Go to the top of the page
+Quote Post
castagir
post
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

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


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ę.
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


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
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 Aktualny czas: 19.08.2025 - 20:33