Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty + javascrypt + php jak przekazać zmienną do javascrypt
Forum PHP.pl > Forum > PHP
zebrowski1073
W pliku galeria.tpl
  1. <form>
  2. <div class="plupload_buttons" id="container">
  3. <div id="queue"></div>
  4. <input id="myfile" name="myfile" type="file" multiple="true" class="plupload_button plupload_add" style="position: relative; z-index: 1;">
  5. </div>
  6. </form>


  1. {literal}<script>
  2.  
  3. $(document).ready(function()
  4. {
  5.  
  6. var settings = {
  7. dir : '{$this->dir}',
  8. url: "upload.php",
  9. method: "POST",
  10. allowedTypes:"jpg,png,gif,doc,pdf,zip",
  11. fileName: "myfile",
  12. multiple: true,
  13. onSuccess:function(files,data,xhr)
  14. {
  15. $("#status").html("<div class='plupload_buttons' id='container'><a href='?id=gal&page=wgraj' class='plupload_button plupload_add' style='position: relative; z-index: 1;'>Wgraj</a>/div>");
  16.  
  17. },
  18. onError: function(files,status,errMsg)
  19. {
  20. $("#status").html("<font color='red'>Nieudany przesył </font>");
  21. }
  22. }
  23.  
  24.  
  25. });
  26. </script>{/literal}


potrzebuję przekazać zmienną $this->dir która ma postać : w php $this->dir = GAL.'org/' ; gdzie GAL to zmienna zdefiniowana do galerii i jest tworzona podczas instalacji


plik upoland.php
  1. $dir = $_POST['dir'] ;
  2. if(isset($_FILES["myfile"]))
  3. {
  4. $ret = array();
  5.  
  6. $error =$_FILES["myfile"]["error"];
  7. {
  8.  
  9. if(!is_array($_FILES["myfile"]['name'])) //single file
  10. {
  11. $RandomNum = time();
  12.  
  13. $ImageName = str_replace(' ','-',strtolower($_FILES['myfile']['name']));
  14. $ImageType = $_FILES['myfile']['type']; //"image/png", image/jpeg etc.
  15.  
  16. $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
  17. $ImageExt = str_replace('.','',$ImageExt);
  18. $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
  19. $NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
  20.  
  21. move_uploaded_file($_FILES["myfile"]["tmp_name"],$dir. $NewImageName);
  22. //echo "<br> Error: ".$_FILES["myfile"]["error"];
  23.  
  24. $ret[$fileName]= $dir.$NewImageName;
  25. }
  26. else
  27. {
  28. $fileCount = count($_FILES["myfile"]['name']);
  29. for($i=0; $i < $fileCount; $i++)
  30. {
  31. $RandomNum = time();
  32.  
  33. $ImageName = str_replace(' ','-',strtolower($_FILES['myfile']['name'][$i]));
  34. $ImageType = $_FILES['myfile']['type'][$i]; //"image/png", image/jpeg etc.
  35.  
  36. $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
  37. $ImageExt = str_replace('.','',$ImageExt);
  38. $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
  39. $NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
  40.  
  41. $ret[$NewImageName]= $output_dir.$NewImageName;
  42. move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$dir.$NewImageName );
  43. }
  44. }
  45. }
  46. echo json_encode($ret);
  47.  
  48. }


Oczekuję jakiś pomysłów lub przeróbek kodu . Może coś jest żle
nospor
Dales {literal} wiec niejako wyszedles ze smarty, wiec {$zmienna} nie bedą dzialac.... Jak chcesz byc dzialaly przypisania smartowe, to musisz przed ich wykonaniem wyjsc z literal {/literal}

Poza tym co to za odwolanie {$this} w smarty? Zeby cos pobrac w smarty to trzeba to przypisac do smarty, a potem {$zmienna} a nie zadne {$this}
zebrowski1073
Dales {literal} wiec niejako wyszedles ze smarty, wiec {$zmienna} nie bedą dzialac.... Jak chcesz byc dzialaly przypisania smartowe, to musisz przed ich wykonaniem wyjsc z literal {/literal}

Poza tym co to za odwolanie {$this} w smarty? Zeby cos pobrac w smarty to trzeba to przypisac do smarty, a potem {$zmienna} a nie zadne {$this}

Dzięki działa a $this w smarty można zastosować używając class
np

$this->smarty->assign('this',$this) ;
$this->smarty->display('galeria.tpl') ;

nospor
No, jak przypiszesz caly obiekt i nazwiesz go "this", to faktycznie, mozesz tak uzywac...
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.