Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript] JQGrid - Dodawanie/Usuwanie/Edycja wierszy.
Forum PHP.pl > Forum > Przedszkole
Kurdtt
Witam wszystkich serdecznie,

Od razu mówię, że poznaję takie cuda jak JavaScript oraz jQuery.

Posiadam taki skrypt:

http://pastebin.com/6e66e09K

Jest to tabelka w JQGrid, która dodaje elementy w bardzo złym stylu, nie usuwa ich ani nie edytuje. Próbowałem dodawać elementy tak, jak
to sugeruje dokumentacja JQGrid, czyli:

var parameters =
{
rowID : "new_row",
initdata : {},
position :"first",
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
}

jQuery("#list").jqGrid('editGridRow', "new", properties );

i dodaje mi jedynie puste kolumny.

Jak zrobić, by zapomocą ikonki plusa dodawało rekordy, a później - by usuwało i edytowało je?

Jeżeli ktoś mógłby poświęcić choć chwilę na rozpatrzenie mego problemu - byłbym bardzo wdzięczny.

Pozdrawiam.
trueblue
Może na początek dodawanie.
Dlaczego nie używasz metody addRowData (w przykładzie, który podałeś jest zakomentowana).
Kurdtt
Gdy zakomentuje kod z append i odkomentuje właśnie z AddRowData to wtedy dodaje mi puste pola (Nota bene działa tylko wtedy, gdy z nawiasów klamrowych wyrzucę "miasto"). Kod z append wrzuca mi na żywca kod z HTML'a tj. tworzy normalny wiersz tabeli z odpowiednim CSS'em, ale nie da się później manipulować tym rekordem w żaden sposób.
trueblue
  1. jQuery("#list").addRowData(rowid,data, position, srcrowid);

rowid - id wiersza,
data - obiekt zawierający nazwy kolumn i ich wartości, u Ciebie: {id: 1, miasto: 'Warszawa'}
position - z dokumentacji wynika, że: 'first', 'last' lub 'after', 'before', przy tej ostatniej parze podaje się parametr:
srcrowid - id wiersza, przed który lub po którym będzie wstawiony nowy wiersz
Kurdtt
Świetnie! Dziękuje ślicznie smile.gif Dodaje tak jak trzeba, sortuje, tylko przy dodawaniu, w okienku "Dodaj rekord" wyświetla się enigmatyczny napis "Brak adresu URL."

Czy odejmowanie rekordu/usuwanie trzeba zrobić w tej samej funkcji?

Znalazłem coś takiego:

$('#item_table').jqGrid('delRowData',rowid);

Teraz pytanie: jak tego użyć?
trueblue
Nie bardzo wiem o jakie okienko chodzi.

  1. $('#list').jqGrid('delRowData',rowid);

rowid - to id wiersza, który usuwasz
Kurdtt
Moje pytanie jest następujące: jak obsłużyć te dwa przyciski?

http://wrzucaj.net/images/2014/04/02/pytanie.png

Tak, rozumiem, że usuwamy po ID, tylko jak zbudować funkcję, by ten konkretny przycisk obsługiwał to konkretne zdarzenie.
trueblue
  1. $('id_przycisku').click(function(e){
  2. e.preventDefault(); //jeśli element natywnie ma jakąś akcję po kliknięciu
  3. $('#list').jqGrid('delRowData',rowid);
  4. });
Kurdtt
Dotarłem, że ID tego przycisku "Usuń", który wyskakuje jest 'dData', aczkolwiek nie działa tak jak należy. W każdym bądź razie dziękuje, będe się bawił dalej. smile.gif

To może inaczej : Jak teraz wyciągnąć nazwę miasta z tej tabeli i przesłać do innego skryptu?

EDIT:

Mam już działający kod na usuwanie wiersza:

$("div.Delete").click(function(e){
var rowid = $('#list').jqGrid('getGridParam', 'selrow');
$('#list').delRowData(rowid);
});

pod warunkiem, że to jest div o id Delete. Przy linku o ID "dData" nie działa, dlatego chciałbym zapytać: czy $("a.dData").click(... jest dobrym odwołaniem, czy potrzeba jakiegoś innego?
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.