Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Smarty - problem z jquery
Forum PHP.pl > Forum > Przedszkole
favik
Witam,
Napisałem sobie prosty formularz, wysyłający 3 zmienne do pliku bez przeładowania strony (w tym celu użyłem jquery). Na rzecz testów zrobiłem to w oddzielnych plikach php i wszystko działa tak jak chciałem, jednak po wklejeniu już całości do szablonu w smarty (pliku .tpl) formularz nie działa (Przycisk nie reaguje na wciskanie). Proszę o jakieś sugestie co mogłem zrobić źle?
Kod formularza:
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  4. <script type="text/javascript" src="/js/jQuery.js"></script>
  5. <script type="text/javascript">
  6. $(document).ready(function(){
  7. $('#btn').click(function(){
  8. $('#newlink').load('/dane.php',{nlink:$('#nlink').val(),nvid:$('#nvid').val(),nuid:$('#nuid').val()});
  9. });
  10. });
  11. </head>
  12.  
  13. <div id="newlink">
  14. Wypełnij: <input type="text" name="nlink" id="nlink" value="" />
  15. <input id="btn" type="button" value="Wyślij">
  16. <input type="hidden" name="nuid" id="nuid" value="889" />
  17. <input type="hidden" name="nvid" id="nvid" value="1199" />
  18. </div>
  19. </body>
  20. </html>
  21.  
  22.  
nospor
w szablonach smarty nie mozna od tak uzywac { oraz }
Musisz wziasc to w {literal} - wiecej info w manualu smartyiego
favik
Cytat(nospor @ 4.10.2010, 12:27:57 ) *
w szablonach smarty nie mozna od tak uzywac { oraz }
Musisz wziasc to w {literal} - wiecej info w manualu smartyiego

Zapomniałem o tym wspomnieć.. Tak też zrobiłem cały javascript objąłem tymi znacznikami w ten sposób:
  1. {literal}
  2. <script type="text/javascript">
  3. $(document).ready(function(){ Z Firebuga: $ is not a function Line 43
  4. $('#btn').click(function(){
  5. $('#newlink').load('/newlink.php',{nlink:$('#nlink').val(),nvid:$('#nvid').val(),nuid:$('#nuid').val()});
  6. });
  7. });
  8. {/literal}

ale dalej nic z tego. Jquery mam w wersji v1.4.2


Edit: komentarz z Firebuga

Próbowałem już na różne sposoby, ale jakoś nie mogę sobie poradzić z tym problemem tak jakby skrypt wcale nie jest widziany, a żeby całą wykonywaną funkcje w jquery przepisać do zdarzenia onClick to jak to wyglądało? I czy jest w ogóle taka możliwość?

Zauważyłem że mój skrypt działa poprawnie w smarty, ale tylko wtedy gdy bezpośrednio przed div'em korzystającym z niego podam javascripty czyli coś w stylu:

  1.  
  2. <script type="text/javascript" src="/js/jQuery.js"></script>
  3. </head>
  4. ....
  5. ....
  6. ....
  7. <script type="text/javascript" src="/js/jQuery.js"></script>
  8. <script type="text/javascript">
  9. ...
  10. <div id="newlink"> ... </div>
  11.  

tylko że muszę właśnie dwukrotnie deklarować jQery, a to chyba nie za dobrze? Ponadto odkryłem, że za takie działanie musi być odpowiedzialny ten javascript, który musi znajdować się za jquery w sekcji head, aby inne części strony działały prawidłowo:
  1. var $j = jQuery.noConflict();
  2. $j(document).ready(function() {
  3. var lis = $j('#lang > li');
  4. $j.each(lis, function() {
  5. var liclass = $j(this).attr('class');
  6. if ( liclass == 'lang-select' ) {
  7. $j(this).mouseover(function() {
  8. $j(this).attr('class', 'over');
  9. }).mouseout(function() {
  10. $j(this).attr('class', '');
  11. });
  12. }
  13. });
  14.  
  15. $j("a[id*='language_']").click(function(event) {
  16. event.preventDefault();
  17. var click_id = $j(this).attr('id');
  18. var id_split = click_id.split('_');
  19. var lang = id_split[1] + '_' + id_split[2];
  20. var clickable = id_split[3];
  21. if ( clickable != 'disabled' ) {
  22. $j("input[name=session_language]").val(lang);
  23. $j('#language_form').submit();
  24. }
  25. });
  26. });

Może coś "nadpisuje" w oryginalnym jquery? Mógłby ktoś spróbować go z edytować?
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.