![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Walczę z tym pluginem od jakiegoś czasu konkretnie z częścią dotyczącą "Autocomplete"
Min, w tym wątku. W końcu się wkurzyłem i zrobiłem dokładnie tak jak TU. I też nie działa. Może po prostu nie mam czegoś w php5 wkompilowane lub inny brak tego typu ? Dodam, że napeno dobrze linkuje w tej częsci
będę wdzięczy za pomoc. Ten post edytował tOm-i 21.08.2009, 10:47:25 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 5 Dołączył: 29.03.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@tOm-i - Ale co dokładnie nie działa? Wywala jakieś błędy JS, czy też PHP?
Bo dla testu odpaliłem ten plugin na kompletnie czystym projekcie (nowo utworzonym) i wszystko działa wyśmienicie z pluginem sfFormExtraPlugin. Żeby nie było że jestem gołosłowny załączam screena [img=http://img40.imageshack.us/img40/6130/picture4bcv.th.png] Może w kilku słowach co i jak po kolei zrobiłem. 1. Instalacja pluginu 2. Symfony cc 3. Załączenie jQuery 4. Ustawienie struktury bazy danych (ORM - Propel). Baza Users, z dwoma polami Id oraz Name 5. W metodzie configure() klasy UsersForm $this->widgetSchema['name'] = new sfWidgetFormPropelJQueryAutocompleter(array( 'model' => 'Users', 'url' => $this->getOption('url'))); A reszta wygląda jak z manuala symfony. Ten post edytował Whisller 20.08.2009, 22:15:44 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Ja też nie miałem najmniejszych problemów.
W Twoim listingu nie widzę jQuery, kolejność ładowania JS tez ma jakieś znaczenie. Zacznij od nowa (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Jeśli coś nie działa to debuguj, debuguj i jeszcze raz debuguj.
Nie podałeś nam w zasadzie żadnych informacji. Jak już wyżej zostało zauważone, nie wiemy nawet czy dołączyłeś jQuery. Bawimy się w wróżbiarstwo, więc ok. Moja wróżba: pliki jquery.autocompleter.css i jquery.autocompleter.js nie istnieją w lokalizacji w jakiej powinny. Polecenie symfony plugin:publish-assets powinno pomóc. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
w Database.yml ustawiłem parametry BD. nastepnie:
dodaje: CODE // lib/form/DemoArticleForm.class.php $this->widgetSchema['author_id']->setOption('renderer_class', 'sfWidgetFormPropelJQueryAutocompleter'); $this->widgetSchema['author_id']->setOption('renderer_options', array( 'model' => 'DemoAuthor', 'url' => $this->getOption('url'), )); public function executeNew(sfWebRequest $request) { $this->form = new DemoArticleForm($article, array('url' => $this->getController()->genUrl('article/ajax'))); } // apps/frontend/modules/article/actions/actions.class.php public function executeAjax($request) { $this->getResponse()->setContentType('application/json'); $authors = DemoAuthorPeer::retrieveForSelect($request->getParameter('q'), $request->getParameter('limit')); return $this->renderText(json_encode($authors)); } class DemoAuthorPeer extends BaseDemoAuthorPeer { static public function retrieveForSelect($q, $limit) { $criteria = new Criteria(); $criteria->add(DemoAuthorPeer::NAME, '%'.$q.'%', Criteria::LIKE); $criteria->addAscendingOrderByColumn(DemoAuthorPeer::NAME); $criteria->setLimit($limit); $authors = array(); foreach (DemoAuthorPeer::doSelect($criteria) as $author) { $authors[$author->getId()] = (string) $author; } return $authors; } } // apps/frontend/modules/article/templates/_form.php <?php use_javascript('/sfFormExtraPlugin/js/jquery.autocompleter.js') ?> <?php use_stylesheet('/sfFormExtraPlugin/css/jquery.autocompleter.css') ?> Dostaje błąd:
wiec w lini:
daje:
dostaje blad:
Bo zapomniełem zainstalować pluginu wiec:
i
nastepnie blad:
wiec dodaje metody __toString CODE class DemoAuthor extends BaseDemoAuthor { public function __toString() { return $this->getName(); } } class DemoCategory extends BaseDemoCategory { public function __toString() { return $this->getName(); } } class DemoTag extends BaseDemoTag { public function __toString() { return $this->getName(); } } w bazie w demo_author dodaje 2 wpisy: xtest 1 xtest 2 na końcu dałem jeszcze:
i nadal nie działa w article/new mam CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <link rel="shortcut icon" href="/favicon.ico" /> <script type="text/javascript" src="/sfFormExtraPlugin/js/jquery.autocompleter.js"></script> <link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" /> <link rel="stylesheet" type="text/css" media="screen" href="/sfFormExtraPlugin/css/jquery.autocompleter.css" /> </head> <body> <h1>New Article</h1> <form action="/article/create" method="post" > <table> <tfoot> <tr> <td colspan="2"> <input type="hidden" name="demo_article[id]" id="demo_article_id" /> <a href="/article">Cancel</a> <input type="submit" value="Save" /> </td> </tr> </tfoot> <tbody> <tr> <th><label for="demo_article_author_id">Author id</label></th> <td> <input type="hidden" name="demo_article[author_id]" id="demo_article_author_id" /><input type="text" name="autocomplete_demo_article[author_id]" value="" id="autocomplete_demo_article_author_id" /><script type="text/javascript"> jQuery(document).ready(function() { jQuery("#autocomplete_demo_article_author_id") .autocomplete('/article/ajax', jQuery.extend({}, { dataType: 'json', parse: function(data) { var parsed = []; for (key in data) { parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] }; } return parsed; } }, { })) .result(function(event, data) { jQuery("#demo_article_author_id").val(data[1]); }); }); </script> </td> </tr> <tr> <th><label for="demo_article_status">Status</label></th> <td> ......CUT article/ajax daje mi plik z danymi z bazy czyli:
tak to wygląda... Ten post edytował tOm-i 21.08.2009, 10:54:25 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Nie działa - czyli pojawia się input, ale po wpisaniu nic się nie dzieje? Tak na prawdę znowu nie napisałeś co się dzieje i czym objawia się "nie działa".
Może błąd jest gdzieś po strone js, w takim razie skorzystaj z firebug'a i napisz jakie on daje błędy. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam ale miedzy czasie edytowałem posta bo problemy z BBCode miałem (IMG:style_emoticons/default/smile.gif) teraz podałem wiecej informacji,
pojawia się normalenie cały formularz tylko samo autocomplete w inpucie nie działa, zaraz sprawdzę przy pomocy tego co mi napisałeś. EDIT wreszcie co sie ruszyło (IMG:style_emoticons/default/smile.gif) są błędy co mnie niezmiernie cieszy bo nie maiłem pomysłyu juz jak znaleść jakieś błedy CODE jQuery is not defined jquery.autocompleter.js()jquery.a...pleter.js (wiersz 762) [Break on this error] })(jQuery);\njquery.a...pleter.js (wiersz 762) jQuery is not defined new()new (wiersz 30) [Break on this error] jQuery(document).ready(function() {\nnew (wiersz 30) takie błedy mam. Ten post edytował tOm-i 21.08.2009, 11:02:29 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Zapomniałeś już co było we wcześniejszych postach? Przecierz Whisller i Cysiaczek pisali Ci już o załączeniu jQuery. U Ciebie nadal go nie ma! O czym zresztą mówi bardzo dokładnie błąd, który nam podałeś.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
To proszę mi powiedzieć co kryje się pod terminem "załączenie jquery" ?
nie to :?
bo juz zgłupiałem. Dodam, że poprwność dołączenia css sprawdziłe sobie poprzez dodanie w jquery.autocompleter.css wpisu * {font-size:10px} czciionka mi sie zmiejszyłe wiec css załadowany. Rozumiem co "mówi" do mnie błąd tylko nie wiem dlaczego ? http://test.local/sfFormExtraPlugin/js/jqu...utocompleter.js wyświetla mi skrypt js taką lokalizacjie podaje również firebug wiec moze nie mam "załączonego jquery" :] Ten post edytował tOm-i 21.08.2009, 11:25:15 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Nie, to jest plugin do jQuery, a Tobie brakuje samego jQuery. Mógłbyś przeczytać samemu coś o jQuery to też byś to wiedział.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 3.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
No się nie domyśliłem ze może brakować w pluginie czegoś czego on sam wymaga.
Teraz już działa dziękuję wszystkim za pomoc. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 6 Dołączył: 26.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W manualu do pluginu sfFormExtraPlugin w części poświęconej autocomplete:
http://symfony.com/blog/new-in-symfony-1-2-make-your-choice wkradł się błąd który - jeżeli próbuje się uruchomić ten przykład sposobem kopiuj wklej - powoduje że całość nie działa (a przynajmniej jeżeli korzysta się z sf 1.4 ) we fragmencie :
zamiast "$article" powinno być "$DemoArticle". Czyli :
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Błędu nie ma, masz u siebie inaczej nazwaną zmienną. Gdybyś artykuł przypisał do zmiennej $article problemu by nie było. To wszystko.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 21:15 |