v2.5.2
Giriş yap

javascript içinden php ye değişken değeri atama

pcmemo
1,825 defa görüntülendi

Merhaba arkadaşlar aşağıdaki javascript anlık olarak tarayıcının boyutunu gösteriyor.
Bu javascript içinde yükseklik ve genişlik değerlerini birer php değişkenine atayabilir miyiz?

<p id="ViewPortSize"> </p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script>
function GetViewPortSize() {
$('#ViewPortSize').text("Width = " + $( window ).width() + " / Height = " + $( window ).height());   /* <!doctype html> may be necessary */
}

/* Execute "GetViewPortSize" function at page load */
$(GetViewPortSize);

/* Execute "GetViewPortSize" function everytime the browser viewport is resized */
$( window ).resize(GetViewPortSize);
</script>
Cevap yaz
Cevaplar (6)
pcmemo
1385 gün önce

Cevaplayan tüm arkadaşlarımam teşekkür ediyorum. css tarafındna başlayarak deneyeceğim. Tekrar teşekkür ederim.

tayfunerbilen
1385 gün önce

front-end tarafını ilgilendiren konularda php yerine css'i kullanabilirsin. neden @media sorgularını kullanarak bunu yapmıyorsun?

iframe.youtube-video {
    width: 700px;
    height: 300px;
}
@media(max-width: 700px){
    iframe.youtube-video {
        width: 100%;
        height: 280px;
    }
}

gibi..

farukdst
1386 gün önce

Bir şekilde php değişkene aktardığını varsayalım, örneğin tayfunun dediği gibi cookiede tutarak.
Javascriptte resize kullandığın için dinamik olarak her değişiklikte istek yollamak zorunda kalcaksın ve dediği gibi şişme yapacak.

Çözünürlüğe göre veri sayısı belirlemek istiyorsan alternatif olarak; örneğin içinde 10 tane veri olan bir div ve 5 tane veri olan bir divin olabilir ve bunları çözünürlüğe göre show|hide yapabilirsin.
Veya yine çözünürlüğe göre örneğin width 650den küçükse 5.den sonraki divleri hide yapabilirsin

Iframe veya başka bir elemanın boyutu için zaten phpye ihtiyacın yok.

pcmemo
1386 gün önce

o zaman şöyle sorayım, bazı durumlarda ekran çözünürlüğüne ihtiyacım oluyor.
Mesela listeleme yaptığım sayfalarda sayfa başı gösterilecek adeti ekran yüksekliğine göre ayarlamak istiyorum.
bu örnekler çoğaltılabilir bir örnek daha vereyim, ifarme ile youtube video gösterdiğim sayfalar mobil cihazlarda farklı çözünürlüklerde ıkıyor bu sebeple çözünürlüğü bilirsem o değişkene göre farklı değerler vererek doğru görünmesini sağlarım.

tayfunerbilen
1386 gün önce

bu değerlerle javascript tarafında cookie oluşturabilirsin. php tarafında da şöyle bir işlem yapabilirsin;

$width = $_COOKIE['width'];

ama tabi nerede nasıl kullanacağına bağlı, ajaxlada her seferinde gönderebilirsin ama çok gereksiz bir request isteği birikir ve şişmeye başlar.

makifgokce
1386 gün önce

JQuery ile post veya get yöntemiyle halledebilirsin.

var post = function() {
        $.ajax(
            {
                url: "ajax.php",
                type: "POST",
                data: { width: $( window ).width(), height: $( window ).height()}
            })
            .then(function (data)
            {
                console.log( data );
            },
            function (xhr, status, error)
            {
                console.log(status + ": " + error);
            });
    }

ajax.php

if(isset($_POST['width']) && isset($_POST['height'])){
    $width = $_POST['width'];
    $height = $_POST['height'];
    echo "width = $width, height = $height";
}