[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: JS и PHP
John.Deff

<?
$widthScreen = '<script>document.write(screen.width);</script>'; // успешно определяет разрешение окна, но число является строкой!
$widthScreen = settype($widthScreen, "integer"); // почему конвертирует, но число(разрешение броузера) исчезает?
$symbol = $widthScreen / 5; // так как $widthScreen не число, оно не делиться
echo $symbol;
?>


вот надо разрешение экрана разделить на 5 и результат использовать дальше!
вот как быть??



Спустя 42 минуты, 34 секунды (25.03.2010 - 18:55) Игорь_Vasinsky написал(а):
да, у меня тод не получилось и intval() тоже не справился,

попробуй в JS определить переменную Width со значением screen.width

b используй в PHP

Спустя 44 секунды (25.03.2010 - 18:56) NewBePhp написал(а):
John.Deff
что касается пхп, то, в первой строчке, ты задал некий текст, который, как я понимаю, в дальнейшем должен быть выведен на хтмл странице и потом продолжится обработка данных на клиентской стороне...
вторая строчка у тя задает обработку $widthScreen... отсюда возникла ошибка при флаге инт! текст не явл.-ся целым числом... далее думаю смысл ясен...

2-ое, что хочу сказать - это <script>document.write(screen.width);</script> !!!
обработку данных или посылай адресно в ссылке и обрабатывай пхп скриптом или же оставляешь и создаеш обработку в JS:
$widthScreen = '<script>document.write(screen.width);</script>';
echo $widthScreen;

Спустя 11 минут, 43 секунды (25.03.2010 - 19:07) Игорь_Vasinsky написал(а):
да не..

в первой строчке он получил значение переменной $widthScreen - выводит у меня 1280 - но при попытке определить тип выдаёт string(),

поэтому арифметические действия невозможны, я и предлогаю ему получить переменную (а не вывести строку) в JS, а потом использовать в PHP и по списку.

Спустя 11 минут, 18 секунд (25.03.2010 - 19:19) NewBePhp написал(а):
Игорь_Vasinsky
из текста получить данные в виде инта тут никак...
1280 ты получишь в случае если выведеш в хтмл... но тут *конец истории*...
остальное написано выше

Спустя 22 минуты, 40 секунд (25.03.2010 - 19:41) twin написал(а):
NewBePhp
Люди просто не понимают, что действия происходят по разные стороны забора...

Цитата
<script>document.write(screen.width);</script>

Это у пользователя на компьютере, а остальное на сервере.
Как же можно получить значение (расширение окна монитора пользователя), если скрипт работает еще на сервере и про пользователя ничего не знает?
Нужно сначала передать скртипту эти данные, потом уже делить.
Аяксом например.

Спустя 2 минуты, 52 секунды (25.03.2010 - 19:44) NewBePhp написал(а):
twin
пускай простыми способами пользуются (с этим согл) но аякс рановат в таком случае... но за всех не отвечаю... личный опыт!

Спустя 25 минут, 54 секунды (25.03.2010 - 20:10) John.Deff написал(а):
Блин!! но тут все работает!! и строку мы получаем правильную, надо просто её перевести со "string" в "integer" и будет счастье!
twin не могу понять причем здесь клиент - сервер, если все пашет?
Игорь_Vasinsky - я не силен в JS, хоть примерно как это должно выглядеть?

вот так вот все прекрасно работает
<script type="text/javascript">
var widthScreen = screen.width;
symbol = widthScreen / 5;
document.write(symbol);
</
script>


но мне надо значение "document.write(symbol);"
запихнуть в
<? 
$symbol = document.write(symbol); // это грубо, такого не бывает
echo substr($row->p_desc,0,$symbol); ?>


вот как же все таки победить это??

Спустя 11 минут, 41 секунда (25.03.2010 - 20:22) NewBePhp написал(а):
John.Deff
ну ты даеш то пхп написал а ща js показываеш... само собой то не катит ...
то что написал твин - ВЕРНО... клиент - сервер пора знать... или передавай данный аяксом или ссылкой типа index.php?width=1024
обрабатывать соответственно...

Спустя 48 минут, 37 секунд (25.03.2010 - 21:10) John_761 написал(а):
$abc = (string)'1280';
$ab = (int)$abc;
var_dump($ab); // int(1280)

Спустя 2 часа, 2 минуты, 23 секунды (25.03.2010 - 23:13) ApuktaChehov написал(а):
Уважаемый John.Deff.

Вы не понимаете, что php - выполняется на сервере, а JavaScript у клиента.
$symbol = document.write(symbol); // это грубо, такого не бывает


Это не может работать, потому как: $symbol -у что то должно присвоится еще до того, как какая-либо информация попадет к клиенту(в браузер), еще до того, как браузер вообще узнает что ему что то придет от сервера.
А document.write(symbol) выполнится только у клиента(в браузере), уже после того как вся нужная информация пришла от сервера.

Таким образом, php никак не может присвоить $symbol - у значение document.write(symbol), потому что document.write(symbol) будет известен, только после того, как ВЕСЬ скрипт php будет исполнен,а результат его работы попадет к клиенту (в браузер).

P.S. Это жесткая правда, но с другой стороны, чисто теоретически, возможно у вас установлена какая то бня, которая на сервере исполняет JS, но опять же как узнать что там у клиента делается? По моему бред...

Спустя 3 часа, 3 минуты, 45 секунд (26.03.2010 - 02:17) John.Deff написал(а):
Цитата (ApuktaChehov @ 25.03.2010 - 20:13)
Уважаемый John.Deff.

Вы не понимаете, что php - выполняется на сервере, а JavaScript у клиента.
$symbol = document.write(symbol); // это грубо, такого не бывает


Это не может работать, потому как: $symbol -у что то должно присвоится еще до того, как какая-либо информация попадет к клиенту(в браузер), еще до того, как браузер вообще узнает что ему что то придет от сервера.
А document.write(symbol) выполнится только у клиента(в браузере), уже после того как вся нужная информация пришла от сервера.

Таким образом, php никак не может присвоить $symbol - у значение document.write(symbol), потому что document.write(symbol) будет известен, только после того, как ВЕСЬ скрипт php будет исполнен,а результат его работы попадет к клиенту (в браузер).

P.S. Это жесткая правда, но с другой стороны, чисто теоретически, возможно у вас установлена какая то бня, которая на сервере исполняет JS, но опять же как узнать что там у клиента делается? По моему бред...

я написал для примера, что мне надо, написал абстрактно!
но в целом мне не понятно, то, что в браузер выводится строка (разрешение экрана), её можно использовать, только как строку, и она работает.
как число не работает.... да и хрен сним!

Как можно решить эту задачу другими путями?
надо чтоб юзер загрузил страницу и без перезагрузки, без куков узнать его разрешение, загнать в переменную - такое реально?

Спустя 2 часа, 24 минуты, 41 секунда (26.03.2010 - 04:41) twin написал(а):
Вот смотри. Допустим ты ремонтируешь канализацию. Ты находишься в колодце, а напарник твой сверху - подает ключи.
По твоей логике он должен подать именно тот ключ, который подойдет к гайке, котрую ты собрался открутить.
Как сделать так, чтобы без перезагрузки не вылезая тебе из колодца, без куков предварительной договоренности напарник узнал, что именно тебе надо и загнал в переменную подал именно тот ключ, какой нужно?
Способ только один. Крикнуть или позвонить по айфону - дай на 32! То есть должен быть канал взаимодействия - аякс.
Причем скрипт должен отработать два раза. Сначала посмотреть, какая там гайка (узнать разршение), потом получить ключ (это значение) и тогда уже начинать крутить (формировать конечную страницу).

Ты же делаешь что. Берешь айфон (строку со скриптом) и вместо того, что бы позвонить напарнику (отправить эту строку браузеру) пытаешься им крутить гайки. И удивляешься: как же так, почему не подходит...


Спустя 3 часа, 37 минут, 12 секунд (26.03.2010 - 08:18) qpayct написал(а):
ну ты блин даёшь....
хочешь выполнить действие на серваке в соответствии с шириной экрана юзверя до того, как юзверь вернул тебе эту самую ширину своего экрана и ещё удивляешься blink.gif

Спустя 5 часов, 11 минут, 10 секунд (26.03.2010 - 13:30) John.Deff написал(а):
Цитата (twin @ 26.03.2010 - 01:41)
Вот смотри. Допустим ты ремонтируешь канализацию. Ты находишься в колодце, а напарник твой сверху - подает ключи.
По твоей логике он должен подать именно тот ключ, который подойдет к гайке, котрую ты собрался открутить.
Как сделать так, чтобы без перезагрузки не вылезая тебе из колодца, без куков предварительной договоренности напарник узнал, что именно тебе надо и загнал в переменную подал именно тот ключ, какой нужно?
Способ только один. Крикнуть или позвонить по айфону - дай на 32! То есть должен быть канал взаимодействия - аякс.
Причем скрипт должен отработать два раза. Сначала посмотреть, какая там гайка (узнать разршение), потом получить ключ (это значение) и тогда уже начинать крутить (формировать конечную страницу).

Ты же делаешь что. Берешь айфон (строку со скриптом) и вместо того, что бы позвонить напарнику (отправить эту строку браузеру) пытаешься им крутить гайки. И удивляешься: как же так, почему не подходит...

Блеск! теперь понимаю, мне нужно было это user posted image

но тут попутно возникает вопрос!
с помощью php
$_SERVER['HTTP_USER_AGENT']

можно определить браузер
но почему бы не отдавать также разрешение?!


Спустя 4 дня, 9 часов, 47 минут, 1 секунда (30.03.2010 - 22:17) John.Deff написал(а):
кто скажет или покажет ссылочку например, как реализовать задуманное?

Спустя 37 минут, 41 секунда (30.03.2010 - 22:54) twin написал(а):
А что задумано - покрыто мраком. ph34r.gif
Большая часть подобного рода задач решается на стороне клинта посредством javascript. А если нужно передать разные данные - без повторного запроса не обойтись. Или опять же передать все, а выбрать уже на кленте.

Спустя 17 минут, 35 секунд (30.03.2010 - 23:12) John.Deff написал(а):
Цитата (twin @ 30.03.2010 - 19:54)
А что задумано - покрыто мраком. ph34r.gif
Большая часть подобного рода задач решается на стороне клинта посредством javascript. А если нужно передать разные данные - без повторного запроса не обойтись. Или опять же передать все, а выбрать уже на кленте.

хм...
задумано следующее:

есть простой текст в базе скажем 3000 символов.
на главной странице выводим новость с кусочком текста скажем 100 символов, но у нас ячейка резиновая только в "width" и эти 100 символов при разрешении экрана в 800х600, будут рвать дизайн, а при разрешении 1600х1024 символов явно будет маловато и нужно бы заполнить всю ячейку текстом...

вот как сделать, чтоб пользователь зашел на сайт, "просто зашел" и получил выше описанное?

в нете много чего перекопал, результата нет dry.gif

Спустя 4 минуты, 19 секунд (30.03.2010 - 23:16) twin написал(а):
Я в верстке не силен, но помнится, что такая задача решается на уровне CSS даже, не то что программно... но как не подскажу - лень рыться. sad.gif

Спустя 5 минут, 17 секунд (30.03.2010 - 23:21) John.Deff написал(а):
Цитата (twin @ 30.03.2010 - 20:16)
Я в верстке не силен, но помнится, что такая задача решается на уровне CSS даже, не то что программно... но как не подскажу - лень рыться. sad.gif

это как на уровне CSS, это стили, тут никак текст не уменьшить, тут народ правильно подсказал AJAX нужен
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.