Edycja komórek tabeli

0

Weźmy przykładową tabelę

 
<table>
<tr>
<td>11</td><td>12</td>
</tr><tr>
<td>21</td><td>22</td>
</tr>
</table>

I teraz chcę, aby po kliknięciu np.11 wyskoczyło pole do edycji i po kliknięciu "enter" zapisywały się te dane. Jakiego języka programowania użyć i mniej więcej jak to robić. Już nie wiem gdzie szukać

0

Jeżeli to ma się zapisywać tylko w sensie, że ma być widoczne na widoku po zakończeniu edycji to Javascript/jQuery.

Jeżeli chodzi o sposób wykonania, to pewnie tylko jeden z możliwych :

  • do komórki podpinasz zdarzenie onclick, wstawiasz input w komórkę, obsługujesz znak enter i zapisujesz wartość z input-a z powrotem w komórce.

Jeżeli to miałoby się zapisywać jeszcze gdzieś w repozytorium (baza danych ect) to musiałbyś to przesłać ajaxem, chyba że nie musi być dynamicznie to możesz zwykłym postem jako formularz.

0

Niestety moim zadaniem jest zrobienie takiego czegoś, teraz wychodzi na to, że te dane muszą zostać zapisane do bazy, a ja i AJAX to niezbyt ciekawe połączenie, bo nie rozumiem i jakoś żaden kurs nie pomaga. Nie wiem już co mam zrobić i się gubię. A projekt do oddania do końca tygodnia.

0

Musi być asynchronicznie? Nie może być zmiana komórek jak napisałem, a na żądanie (po wciśnięciu przycisku) zapis do bazy danych? Wtedy nie musiałbyś używać Ajax-a. Jeżeli wymaganiem jest użycie Ajax - to ten w jQuery jest całkiem przyjazny w użyciu.

Jaki język programowania i jaka baza danych ma być "pod spodem"?

0

Bawię się w xampp'ie. Strona napisana w php, dopisuje od bazy phpmyadmin i mam już edycje poprzez kliknięcie edytuj i przekierowuje do strony gdzie tam jest formularz żeby edytować sobie dane (pobiera dane z bazy do formularza i tam można zmieniać tekst).
Teraz padł pomysł, żeby gdy się kliknie na dany tekst (ew. puste miejsce w tabeli) żeby to automatycznie sobie edytować jak w excelu.
Takie już beznadziejne usprawnienia strony, żeby było bardziej "gut" i szybciej się wprowadzało dane.

0

To "beznadziejne usprawnienie" w dzisiejszych czasach ma swoją nazwę - UX :)

0

Programować uczę się od niedawna i nagle rodzina zarzuciła mnie projektem do firmy... Cud miód to to nie jest, ale kombinuje. I naprawdę teraz mam problem z tym boskim edytowaniem...

0

Tak naprawdę to tylko wygląda tak strasznie. Spróbuj prześledzić chociażby ten prosty przykład:
http://www.askaboutphp.com/213/php-and-jquery-submit-a-form-without-refreshing-the-page.html

EDIT:
Ewentualnie jeszcze:
http://stackoverflow.com/questions/5004233/jquery-ajax-post-example-with-php
http://www.formget.com/submit-form-using-ajax-php-and-jquery/

No i obowiązkowo dokumentację jQuery.post() (jak mogłem zapomnieć :) )
http://api.jquery.com/jquery.post/

PS.Programowanie to w dużej mierze umiejętność szukania (przykładów, dokumentacji, podobnych problemów).

0

Były poszukiwania jakiś w miare przejrzystych kursów/dokumentacji AJAX lecz skończyło to się na ostrym bólu głowy... Czas sobie chyba odpuścić.
No chyba, że jakoś wcisnąć onClick i żeby przeładowało mi całą stronę... No już nie wiem

1

Nie musisz podmieniać komórki inputem i na odwrót, dużo łatwiej będzie ustawić klikniętej komórce atrybut contenteditable, które włączy dla niej edytor html. Przy utracie focusa (onblur) zdejmujesz ten atrybut i jednocześnie ajaksem wysyłasz zawartość rekordu lub pola do serwera.
Nie ma fizycznej możliwości, żebyś poradził sobie bez ajaksa i bez trochę bardziej zaawansowanego js. jQuery bardzo ułatwi sprawę, ale nadal nie będzie to trywialne. Jednakże tłumaczenie się, że "ajax to nie dla mnie" sugeruje, żebyś nie wiązał swojej przyszłości z programowaniem. Jest problem, jest mnóstwo przykładów rozwiązania go w internecie, jest czas na naukę, brak wiedzy w takiej sytuacji nie jest żadnym usprawiedliwieniem, a pisząc "ból głowy" miałeś chyba na myśli "jestem leniem". Masz w internecie setki tysięcy przykładów użycia ajaksa w gołym js i w jQuery, po polsku, angielsku, chińsku, francusku i każdym innym języku świata, może Indianie tylko nie dysponują przykładami użycia w swoich dialektach.

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