działa to na zasadzie, po kliknięciu na ikonę DODAJ plik pokazuje się formularz jest na nim iFrame plik dodaje się "ajaxowo" i jest OK
ale chciałem jescze dodać zarządzanie/ a dokładniej usuwanie pliku (gdyby był dodany przez pomyłkę)
przy dodawaniu pliku ładowana do iFrame jest następująca treść [trochę pomieszane ze SMARTY, ale mam nadzieję że będzie wiadomo o co chodzi
<?php ///ustawiam kolor tekstu w zależności od tego czy przesłanie zakończyło się sukcesem czy też nie {{if $error==0}} {{assign var="fbCol" value="#0E8A04"}} {{else}} {{assign var="fbCol" value="#CF0C14"}} {{/if}} $("#divBOFB", parent.document).css("color","{{$fbCol}}"); //ustawiam tekst rezultatu przesyłania pliku $("#divBOFB", parent.document).html("{{$text.fileUploadErr[$error]}}") //zamykam diva blokującego (półprzeźroczysty absolutny div, który zasłania formularz) $("#divFileSendBlock", parent.document).hide(); //jeśłi przesłanie zakończyło się powodzeniem {{if $error==0}} //do diva listy plików dodaję element (div) opisujący plik $("#divFileListContent", parent.document).append($("<div>").attr("id","divFile_{{$lfid}}").width("265px").height("20px").css("font-size","10px").addClass("pointer")); //do diva opisującego dodaję takie elementy jak nazwa pliku i ikonka X - do usuwania pliku i diva $("#divFile_{{$lfid}}", parent.document) .append($("<img>") .attr("title","{{$text.fileDel}}") .attr("alt","{{$text.fileDel}}") .attr("file","{{$fileName}}") .attr("id","imgDelFile_{{$lfid}}") .attr("src","www/images/deletesmall.gif") ) .append($("#obFile", parent.document).val()); //////////////////////////-TU JEST PROBLEM-////////////////////////////////////// //przypisanie zdarzenia ikonki usuwania ! TU JEST PROBLEM $("#imgDelFile_{{$lfid}}",parent.document).click(function() { ajaxDelFile.fileDel({{$lfid}}); } ); {{/if}} ?>
problem polega na tym, że do iFrame dołączam różne pliki .js (te które są potrzebne)
ale - nie wiem na czym to polega - gdy dodam kolejny plik to ten poprzedni nie reaguje, jest napis że ajaxDelFile jest niezdefiniowane
chciałbym to podłączyć jakoś do zasobów rodzica, aby działało - ale nie mam pojęcia co i jak, może moja koncepcja jest niewłaściwa
może jest problem taki, że trzeba tworzyć iframe coraz to nowe i nowe bo to jest jakoś powiązane
nie wiem co zrobić z tym i jak to obejść
rozwiązanie okazało się proste jak nie wiem co
zamiast podpinac funkcji wystarczy dodać atrybut ONCLICK i działa
czyli zamiast
<?php $("#imgDelFile_{{$lfid}}",parent.document).click(function() { ajaxDelFile.fileDel({{$lfid}}); } ?>
dałem
<?php $("#imgDelFile_{{$lfid}}",parent.document).attr("onclick","ajaxDelFile.fileDel({{$lfid}})"); ?>
i zadziałało
ps. czasami tak mam, że po napisaniu czegoś na forum się rozwiązanie znajduje prawie samo