Łukasz Latkowski

Łukasz Latkowski PHP, Delphi, Pascal,
HTML, Linux, iOS,
Android, Windows,
...

Temat: jQuery UI, autocomplete, img, onClick

Witam

W moim projekcie muszę zrobić powiązane pola select i autocomplete z możliwością dodania danych w locie. Samo wyszukiwanie zrobiłem ale z dodawaniem mam problem. A konkretnie po wybraniu czegoś z autokomplete ma się dać dodać podkategorie do powiązanego pola select. Chce wyświetlić obok select ikonę + i jako onClick otworzyć nowe okno. Ale właśnie z tym obrazkiem i onClick głupieje js

Mój przykład wygląda tak

$("#dodaj_lokalizacja").append(\'<img name="Dodaj" src="../gfx/ico_add.png" onClick="window_search("../html/klienci_lokalizacja_form.php?operacja=editMenuOff=1&master=\'+id+\'",800,600,1);" title="Dodaj">\');

Coś takiego wychodzi jako źródło strony

$("#dodaj_lokalizacja").append('<img name="Dodaj" src="../gfx/ico_add.png" onClick="window_search("../html/klienci_lokalizacja_form.php?operacja=editMenuOff=1&master='+id+'",800,600,1);" title="Dodaj">');

Coś takiego działa ale bez wyświetlenia w oknie

$("#dodaj_lokalizacja").append(\'<a href="../html/klienci_lokalizacja_form.php?operacja=editMenuOff=1&master=\'+id+\'">Dodaj</a>\');

Może da się to jakoś inaczej napisać ?

No i jeszcze po każdej zmianie powiązanego select'a dodaje nowego linka :(

Pozdrawiam
ŁukaszŁukasz Latkowski edytował(a) ten post dnia 23.10.11 o godzinie 21:56

konto usunięte

Temat: jQuery UI, autocomplete, img, onClick

zanim pomysle i w ogole przeczytam w czym dokladnie problem, wiec ze pierwszego i ostatnie \ nie powinno w twoim kodzie byc ?

konto usunięte

Temat: jQuery UI, autocomplete, img, onClick

omg, masz jQuery i eventy podpinasz przez onclick? i to inlinowy? mysle, ze warto zapoznac sie z takimi tematami jak:
1. tworzenie elementow DOM w JS
2. zalaczanie eventow pod te i inne elementy (juz moze byc w jQuery, jest spooooro prosciej...)
3. dodawanie tychze elementow do biezacego drzewa

a potem sprobowac, wykorzystujac powyzsza wiedze, zmierzyc sie z tematem ponownie, ale we wlasciwy sposob.
Łukasz Latkowski

Łukasz Latkowski PHP, Delphi, Pascal,
HTML, Linux, iOS,
Android, Windows,
...

Temat: jQuery UI, autocomplete, img, onClick

Witam

Dzięki za podpowiedz. Faktycznie namieszałem trochę.
Teraz zrobiłem tak

$("#dodaj_lokalizacja").click(function() {
window.open ( "../html/klienci_lokalizacja_form.php?operacja=new&MenuOff=1&master="+IdKlient , "Nowa lokalizacja" , "width=800,height=600,scrollbars=noresizable=yes");
});

Działa dobrze, ale jeszcze nie wiem jak przeładować selecta aby zaczytał nowe dane. Teraz kod mam taki.

$( "#search" ).autocomplete({
source: "../ajax/zgloszenia_klient.php",
minLength: 2,
select: function( event, ui ) {

IdKlient=ui.item.id;
var dataString = "id="+ IdKlient;

$( "#Zgloszenie_KlientId" ).val( IdKlient );

$("#dodaj_lokalizacja").click(function() {
window.open ( "../html/klienci_lokalizacja_form.php?operacja=new&MenuOff=1&master="+IdKlient , "Nowa lokalizacja" , "width=800,height=600,scrollbars=noresizable=yes"); }); $.ajax ({
type: "POST",
url: "../ajax/zgloszenia_lokalizacja.php",
data: dataString,
cache: false,
success: function(html) {
$(".Zgloszenie_LokalizacjaId").html(html);
}
});
}
});

Pozdrawiam
Łukasz
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: jQuery UI, autocomplete, img, onClick

Dlaczego polecenie

$("#dodaj_lokalizacja").click(function() 

masz wewnątrz callbacka na select : function (event, ui) ?

Wyrzuć to w ogóle poza obsługę $('#search').autocomplete()
Łukasz Latkowski

Łukasz Latkowski PHP, Delphi, Pascal,
HTML, Linux, iOS,
Android, Windows,
...

Temat: jQuery UI, autocomplete, img, onClick

Bartosz Ratajczyk:
Dlaczego polecenie

$("#dodaj_lokalizacja").click(function() 

masz wewnątrz callbacka na select : function (event, ui) ?

Wyrzuć to w ogóle poza obsługę $('#search').autocomplete()

Witam

Zrobiłem to ponieważ mam pod autocomplete podpięte kolejne select'y i po wybraniu pozycji w pierwszym ma się uaktualnić kolejny. Taki gdzieś znalazłem przykład i na razie działa. Jeśli da się inaczej to poproszę o podpowiedź albo jakiś fajny kurs do nauki jQuery z przykładami jak robić powiązania między elementami.

Struktura wyboru jest taka :

1) Szukanie Klienta lub jeśli nie ma to dodanie ( przekazanie Id klienta do lokalizacji)
2) Lokalizacja Klienta lub jeśli nie ma to dodanie ( przekazanie Id klienta i lokalizacji do Osoby Kont. i Urządzenia)
3) Osoba kontaktowa lub jeśli nie ma to dodanie
4) Urządzenie lub jeśli nie ma to dodanie

Czyli szukamy klienta, jak go mamy to wyświetlamy listę lokalizacji, jak ja mamy to szukamy osób kontaktowych i urządzeń w tej lokalizacji.
Jeśli czegoś nie mamy to klikamy [DODAJ] otwiera się okno dodajemy co nam potrzeba, aktualizujemy select i wybieramy to co dodane w polu select.

Jeszcze myślałem żeby dodać jQuery Accordion i na zakładkach wyświetlać pełną informację o wybranych pozycjach z select'ów.

Na razie uczę się js i jQuery więc przerabiam gotowce dlatego wychodzą mi takie kwiatki.

Jeszcze czeka mnie zabawa z takim czymś http://jqueryui.com/demos/draggable/#sortable. Po jednej stronie mają być części do urządzenia i stąd je zabieramy i przenosimy na drugą to co klient zamówił. Później to zapisujemy do bazy.

Pozdrawiam
Łukasz
Łukasz Latkowski

Łukasz Latkowski PHP, Delphi, Pascal,
HTML, Linux, iOS,
Android, Windows,
...

Temat: jQuery UI, autocomplete, img, onClick

Witam

Zwalczyłem jQuery Accordion i sortable ale mam jeszcze problem z odświeżeniem pola selct po uzupełnieniu danych w MySQL wprowadzonych w oknach wywołanych przez window.open i zamkniętych window.close.

czyli wywołujemy $("#dodaj_kontakt").click(function() otwiera się nowe okno, wprowadzamy dane, zapisujemy dane do bazy, zamykamy okno, odświeżamy pole select $(".Zgloszenie_KontaktId"), wybieramy nowo dodane dane.

Skrypt wygląda tak:
$(".Zgloszenie_LokalizacjaId").change(function() {
IdLokalizacja=$(this).val();
var dataString = "id="+ IdLokalizacja;
$("#dodaj_kontakt").click(function() {
window.open ( "../html/kontakty_form.php?operacja=new&MenuOff=1&master="+IdKlient+"&slave="+IdLokalizacja , "Nowy kontakt" , "status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1,height=500,width=700");
}); $("#dodaj_urzadzenie").click(function() {
window.open ( "../html/urzadzenia_form.php?operacja=new&MenuOff=1&master="+IdKlient+"&slave="+IdLokalizacja , "Nowe urządzenie" , "status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1,height=500,width=700");
}); $.ajax ({
type: "POST",
url: "../ajax/accordion_lokalizacja.php",
data: dataString,
cache: false,
success: function(html) {
$( "#accor2" ).html(html);
}
});
$.ajax ({
type: "POST",
url: "../ajax/zgloszenia_kontakt.php",
data: dataString,
cache: false,
success: function(html) {
$(".Zgloszenie_KontaktId").html(html);
}
});
$.ajax ({
type: "POST",
url: "../ajax/zgloszenia_urzadzenie.php",
data: dataString,
cache: false,
success: function(html) {
$(".Zgloszenie_UrzadzenieId").html(html);
}
});
});

Pozdrawiam
LaToZ

Następna dyskusja:

Linki do fajnych wtyczek, k...




Wyślij zaproszenie do