Wysłanie danych do bazy z php i js

0

Witam

Mam taki problem: tworzę formularz w którym jedna osoba tworzy drugiej zadanie do wykonania. Po wypełnieniu danych z tego formularza wysyłane są do bazy.
I o ile wysłanie wpisanych z palca danych typu "treść zadania" i "termin wykonania" jest proste, to zagadka się robi kiedy mam do wyboru kto ma to zadania wykonać.

Mam listę wykonawców (każdy wykonawca ma oddzielny przycisk) którą chce mieć w jquery i chciałbym żeby to działało mniej więcej tak: po kliknięciu danej osoby, zmienia się kolor przycisku z jej imieniem (zaznacza się ta osoba) i po kliknięciu wyślij, wszystkie dane wysyłają się do bazy.

Zmiana koloru przycisku nie jest trudna, ale nie mogę poradzić sobie z tym żeby formularz wiedział że kliknięte jest dane imię i że to imię trzeba wprowadzić do bazy.

Póki co mam taki kod:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>tytul</title>
        <link rel="stylesheet" href="../css/style.css" type="text/css" />

</head>
    <body>
         <div class="content"> 
                  
                        <div class="add_div_tytul"> 
                            Tytuł:
                            <input type="text" name="tytul" class="add_tytul" />
                        </div> <!--tytul-->

                        <div class="add_div_tresc"> 
                            Treść zadania:
                            <input type="text" name="tresc" class="add_tresc"/>
                        </div> <!--tytul-->
                        
                         <div class="add_div_czas"> 
                            Termin wykonania:
                          <input type="text" id = "datepicker" class="add_czas" />  
                        </div> <!--czas-->

                         <div class="add_div_ludzie"> 
                            Wykonawca:
                                <button class="czlowiek" id="c1">Jan</button>
                                <button class="czlowiek" id="c2">Marian</button>
                        </div> <!--ludzie-->
          
        </div> <!--content-->
        
        
    <script src="jquery-3.3.1.min.js"></script>
    <script src="skrypt.js"></script>
    
  
  <script>

$( ".czlowiek" ).on( "click", function(e) { zamiana(e); });
    
 function zamiana(e)   
    {
        
        var nr = e.target.id.substring(1);
        
        $(  '#c'+nr ).toggleClass('czlowiek-active');

};

  </script>


    </body>
</html>

i największym problemem jest to że nie wiem jak połączyć jquery z php

0

jak połączyć jquery z php

Albo serwer (PHP) zwraca wygenerowany dokument HTML z danymi, albo pobierasz w locie te dane za pomocą AJAX-a.

Mam listę wykonawców (każdy wykonawca ma oddzielny przycisk) którą chce mieć w jquery i chciałbym żeby to działało mniej więcej tak: po kliknięciu danej osoby, zmienia się kolor przycisku z jej imieniem (zaznacza się ta osoba) i po kliknięciu wyślij, wszystkie dane wysyłają się do bazy.

Czy Twoja aplikacja zakłada możliwość zaznaczania wielu osób? Jeżeli nie to sprawdzi się tutaj lepiej (według mnie) pole jednokrotnego wyboru (tag <select>).
Nie wydaje mi się, aby stosowanie buttonów miało tutaj sens. Jak ma być możliwość wielokrotnego wyboru to już lepiej sprawdziły by się klikalne proste divy zawierające imiona i/lub nazwiska osób. Wówczas taki div możesz obsłużyć w jQuery (np. zmienić jego tło po kliknięciu).

0

moje pytanie dotyczy tylko dodawania do bazy, z wyjmowaniem sobie poradzę (dokładnie tak jak piszesz albo PHP albo AJAX)

możliwy jest wybór wielu osób
ok, zrobię w divie i tam nie będzie problemu z podmianą koloru (żeby zaznaczony świecił się inaczej) ale chodzi mi o to jak zrobić żeby było wiadomo że tylko konkretne imiona zostały zaznaczone i żeby tylko te konkretne zaznaczone imiona wysłać do bazy

Chciałbym żeby to działało na zasadzie "checkbox"

0

Do każdego diva z imieniem i nazwiskiem dodaj atrybut data-*, na przykład data-id. Niech on będzie równy id użytkownika z bazy. I następnie w momencie kiedy zmieniasz kolor diva to dodawaj id do jakiejś tablicy utworzonej globalnie w skrypcie (tylko bez powtórzeń). W formularzu zrób sobie nowe pole (czyli input) o atrybucie „name” np. „users” i pamiętaj, aby to pole miało type=„hidden”. Po dodaniu nowego elementu do tablicy od razu wykonaj na tablicy metodę .join() - to zwróci stringa ze wszystkimi id oddzielonymi przecinkami. I od razu tego stringa ustawiaj temu inputowi jako wartość. Dzięki temu pole to zostanie przesłane na serwer po wysłaniu formularza. Później po stronie serwera robisz tylko split po przecinku i masz tablice id userów. Pamiętaj, ze jak user jest odznaczany to trzeba jego id usunąć z tablicy i wstawić aktualny join w value inputa.

id z atrybutu data-id możesz wyciągnąć za pomocą metody jQuery o nazwie .data() - jako pierwszy parametr podajesz nazwę - w tym wypadku „id”.

1 użytkowników online, w tym zalogowanych: 0, gości: 1