Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   PHP, JavaScript, MySQL (https://javascript.ru/forum/server/1289-php-javascript-mysql.html)

magistr_bender 13.10.2008 08:40

Цитата:

Сообщение от EugenyK
тем самым порядок нумерации по id-колонке будет нарушен.

а это разве проблемма? если делаеш выборку типа
Цитата:

Сообщение от Gvozd
SELECT * FROM positions WHERE id = '{$id}'

можно добавить ORDER BY id и тогда независимо от пропущенных идшников всё будет нормально выводиться.. и даже с использованием LIMIT проблем возникать не будет

slo_nik 18.12.2008 06:38

передача переменных из php в js
 
Доброе время суток.
Сразу оговорюсь, что в js я совсем не силён:)
Вопросов у меня два, начну с главного.
Пишу фотогалерею на php, но увеличенные копии вывожу при помощи javascript, в отдельно создаваемом окне.
Системма хранения фотографий такая, при создании нового каталога/группы, название пишется на русском языке.При добавлении фото в каталог/группу создаётся папка, которая имеет тоже название, что и каталог/группа, естественно на русском языке.Делается это для того, чтобы фото сортировались по директориям и при необходимости не надо было рыскать по названиям файлов, а всего навсего открыть соответствующую директорию.
Проблема в следующем.
Как мне передать имя каталога/группы в js из php, чтобы сохранялась кодировка?
При просмотре исходного текста,путь к файлу выводится как положено, т.е. http://mysite/file/имя группы/imja_faila(имя группы на русском), но когда пытаюсь открыть увеличенное изображение, то вместо фото выводится пустой квадрат и если посмотреть свойства рисунка виден путь http://mysite/files/Перв...1217040702.jpg

Второй вопрос связан в передачей переменных функции js.
привожу два фрагмента кода
первый
a)
формируем путь к увеличенному изображению
$patch = "files/".$view_photo['nam']."/".$name;

формируем ссылку на увеличеную копию изображения
$image = "<a href=\"javascript:myPhoto('".$patch."',".$cat.",".$ph.")\"><img src='files/".$view_photo['nam']."/".$view_photo['small']."' height='100'></a>"; // работает,но не выводи фото из русскоязычных папок.

b)
создаём окно
<script type="text/javascript">
	  function myPhoto(patch,cat,ph){
	  myWin = window.open("","newWindow","top=100,left=150,width=800,height=560");
	  myWin.document.open();
	  myWin.document.write("<html><head>");
	  myWin.document.write("<title>Big Size</title>");
	  myWin.document.write("<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>");
	  myWin.document.write("<link rel='stylesheet' type='text/css' href='stylecss.css'>");
	  myWin.document.write("</head><body>");
	  myWin.document.write("<div id='djs'>"+cat+" / "+ph+"</div>");
	  myWin.document.write("<div align='center'><img src='"+patch+"'><br>");
	  myWin.document.write("<div id='djs'><button onClick='javascript:window.close()'></button></div>");
	  myWin.document.write("</body></html>");
	  myWin.document.close();
	  }
	  </script>

при таком разкладе создаётся окно, где выводятся все параметры нужные мне(за исключением каталогов на русском языке)

второй фрагмент
но если сделать так
формируем путь к увеличенной копии
$patch = "files/".$view_photo['nam']."/";

формируем ссылку на увеличеную копию фотографии
$image = "<a onClick=myPhoto('".$patch."".$name."',".$cat.",".$ph.") href='#'><img src='files/".$view_photo['nam']."/".$view_photo['small']."' height='100'></a>";// не работает


и соответственно js
<script type="text/javascript">
	  function myPhoto(patch,name,cat,ph){
	  myWin = window.open("","newWindow","top=100,left=150,width=800,height=560");
	  myWin.document.open();
	  myWin.document.write("<html><head>");
	  myWin.document.write("<title>Big Size</title>");
	  myWin.document.write("<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>");
	  myWin.document.write("<link rel='stylesheet' type='text/css' href='stylecss.css'>");
	  myWin.document.write("</head><body>");
	  myWin.document.write("<div id='djs'>"+cat+" / "+ph+"</div>");
	myWin.document.write("<div align='center'><img src='"+patch+""+name+"'><br>");
	  myWin.document.write("<div id='djs'><button onClick='javascript:window.close()'></button></div>");
	  myWin.document.write("</body></html>");
	  myWin.document.close();
	  }
	  </script>


выводится чёрт знает что, переменные меняются местами и т.д.
пробовал разные варианты, экранировал кавычки ни чего не получилось,к имени файла, после расширения добавляет значение другой переменной ни чем не разделяя.
Подскажите, пожалуйста, почему второй вариант не работает?

Заранее благодарю за подсказки.

p.s. Проблема с первым вопросом намного важней!!!

kvl 18.12.2008 13:29

По первому вопросу: в php есть iconv() - не помогает?

slo_nik 18.12.2008 14:00

iconv() нет

slo_nik 18.12.2008 14:05

по первому вопросу могу добавить, что если навести курсор на превьюшку, то в статусной строке путь к файлу отображается правильно.
javascript:myPhoto('files/имя каталога/20081217041615.jpg',12,78)


перекодировка символов происходит после клика по превьюшке и выводится в созданном окне уже изменённая


Часовой пояс GMT +3, время: 19:44.