Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разрешение переменной (https://javascript.ru/forum/misc/52172-razreshenie-peremennojj.html)

gogogo 06.12.2014 21:42

Разрешение переменной
 
Друзья, реально запутался с данной задачей. Как правильно определить ширину монитора и передать её в php через аякс? Благодарю

Safort 06.12.2014 22:14

В чём именно запутался? Покажи код.

bes 06.12.2014 22:52

Цитата:

Сообщение от gogogo
Друзья, реально запутался с данной задачей. Как правильно определить ширину монитора и передать её в php через аякс?

https://developer.mozilla.org/en-US/...I/Screen.width
остальное - от ленивого

gogogo 07.12.2014 00:35

index.php
$(document).ready(function(){
ScreenWidth = screen.width;
   $("#test").click(function(event){
$.ajax({
url: 'script.php',
data : 'postVar="ScreenWidth"',
type : "POST",
success: function (data) {
alert (data);
},
error: function(){
alert ("No PHP script: ");
} 
   });

return false;
});

 });

script.php
<?php
echo $_POST['postVar'];

все равно в script.php ничего не передает

Safort 07.12.2014 00:55

gogogo,
а так?
//замени 6 строку на эту
data : { postVar: ScreenWidth },

bes 07.12.2014 00:59

можно и так
data : "postVar=" + ScreenWidth,

kostyanet 07.12.2014 01:46

Начав с размеров захочется большего. Передавайте сразу в json, а в php принимайте json_decode() и двери в большее будут открыты.

gogogo 07.12.2014 12:05

data : "postVar=" + ScreenWidth,

во, теперь alert(data) выводит ширину монитора, но script.php все равно не выводит значение

bes 07.12.2014 12:06

Цитата:

Сообщение от gogogo
data : "postVar=" + ScreenWidth,

во, теперь alert(data) выводит ширину монитора, но script.php все равно не выводит значение

а что по-твоему приходит в alert, как раз то, что выводит script.php

gogogo 07.12.2014 12:11

bes,
а почему при открытии script.php не выводится на экран?

gogogo 07.12.2014 12:24

Объясню немного подробнее свою задачу.
Использую modx revo. При заходе на сайт определяется ширина монитора и если меньше 400, то подставляю шаблон для мобильных. Как планирую реализовать:
Посетитель заходит на страницу, определяется ширина и отсылается аяксом в сниппет (script.php). И уже исходя из значения сниппета вывожу фильтром необходимый кусок кода
<!DOCTYPE html>
<html>
<head>
<script src="assets/js/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
ScreenWidth = screen.width;
$(document).ready(function(){
   $("#test").click(function(event){
$.ajax({
url: 'script.php',
data : "postVar=" + ScreenWidth,
type : "POST",
success: function (data) {
alert (data);
},
error: function(){
alert ("No PHP script: ");
} 
   });

return false;
});

 });
    </script>
</head>
<body>

<a id="test" href="#">test link</a>
<!--Ниже сниппет, который по плану должен вывести значение-->
[[!udalscript?]]
</body>
</html>

bes 07.12.2014 12:37

Цитата:

Сообщение от gogogo
bes,
а почему при открытии script.php не выводится на экран?

почитай как работает ajax, осознай слово "асинхронность", после этого всю полезную работу делай в success при приходе ответа
подобные вопросы уже несколько лет в top faq ;)


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