Информация о окне просмотра jquery не передается в переполнение стека

Я пытаюсь и не могу отправить ширину и высоту области просмотра в файл PHP!

Я знаю, что это или, скорее, много похожих вопросов о переходе на PHP уже задавалось, и я также проходил через них. Тем не менее, я не понял, почему это не работает для меня …

Я получаю следующий вывод, где вторая строка будет соответствовать первой, если данные были переданы:

Your viewport width is 1519x766
Width is: 880 and Height is 495

Я просто не могу получить информацию, передаваемую PHP-части — попробовал это так в одном файле, а также в двух файлах, где я затем вызываю файл php, используя:

<?php include 'panzoom.php';?>

Я использую этот код в голове:

<script>
var viewportwidth;
var viewportheight;

viewportwidth = window.innerWidth,
viewportheight = window.innerHeight

document.write('<p>Your viewport width is '+viewportwidth+'x'+viewportheight+'</p>');

$(document).ready(function() {
$.ajax({
url: 'http://localhost/index.php',
type: 'POST',
dataType: 'json',
data: {
width        : viewportwidth,
height       : viewportheight
}
});
});
</script>

<?php
$GLOBALS['directory'] = "photos/frontpage/";

if(isset($_POST['width']) && isset($_POST['height'])) {
$GLOBALS['width'] = $_POST['width'];
$GLOBALS['height'] = $_POST['height'];
}else{
$GLOBALS['width'] = 880;
$GLOBALS['height'] = 495;
}

$width = $GLOBALS['width'];
$height = $GLOBALS['height'];

echo        '<p>Width is: ' . $width . ' and Height is ' . $height . '</p>';
?>

0

Решение

Вы разместили строку JSON в сценарии PHP, и она называется data так что вы должны искать $_POST['data']

Кроме того, поскольку он публикуется в виде строки json, для того, чтобы разобраться в этом в PHP, вы обычно декодируете его в массив или строку, используя json_decode()

Вам также не нужно создавать все переменные в JavaScript, чтобы загромождать глобальное пространство имен.

Так попробуй это

<script type="text/javascript">
document.write('<p>Your viewport width is '+
window.innerWidth+'x'+window.innerHeight+'</p>');

$(document).ready(function() {
$.ajax({
url: 'index.php',
type: 'POST',
dataType: 'json',
data: {
width        : window.innerWidth,
height       : window.innerHeight
}
});
});
</script>

<?php
$GLOBALS['directory'] = "photos/frontpage/";

if( isset($_POST['data']) ) {
$obj = json_decode($_POST['data']);

$GLOBALS['width'] = $obj->width;
$GLOBALS['height'] = $obj->height;
}else{
$GLOBALS['width'] = 880;
$GLOBALS['height'] = 495;
}

$width = $GLOBALS['width'];
$height = $GLOBALS['height'];

echo '<p>Width is: ' . $width . ' and Height is ' . $height . '</p>';
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]