หาความกว้างหน้าจอด้วย javascript แล้วส่งให้ php ทำงานต่อ
ต้องการหาขนาดความกว้างหน้าจอของคนที่เปิดดูเว็บไซต์ ค้นหาจาก google พบคำสั่ง javascript ในการตรวจหาความกว้างและความสูง แต่ที่ผมอยากได้คือให้นำค่าที่ได้ไปใช้งานต่อได้ใน php อีกทอดหนึ่ง
@FordAntiTrust แนะนำว่าให้ส่งค่าผ่านทาง Cookies (ยิ่งงงเข้าไปอีก ฮาา)
ค้นหาอีกรอบได้คำสั่งมาดังนี้ :
ชุดแรกใส่ใน <head> ทำการสร้าง cookies ขึ้นมาแล้วส่งไปยังหน้าที่เราใช้งาน (ก็คือหน้าที่เราต้องการใช้งานนั่นแหละ)
<?php
if(isset($HTTP_COOKIE_VARS["users_resolution"]))
$screen_res = $HTTP_COOKIE_VARS["users_resolution"];
else //means cookie is not found set it using Javascript
{
?>
<script language="javascript">
<!--
writeCookie();
function writeCookie()
{
var the_cookie = "users_resolution="+ screen.width;
document.cookie=the_cookie
location = 'document.php';
}
//-->
</script>
<?php
}
?>
ในส่วน <body> ก็ echo php ตามปกติ
<?php
echo "Your screen resolution is ". $screen_res;
?>
reference: Find Screen Resolution With PHP | PHP Magic Book
ปล.ใครมีวิธีง่ายกว่านี้ ช่วยแนะนำด้วยครับ :-)
Comments
DominixZ
อืมใช้ Web Service แทนได้ไหมนะ ?? ผมคิดเอาก็ประมาณว่า get ค่ามาแล้วใช้ ajax ส่งต่อให้ php อืมแล้วแต่ว่าจะนำค่านั้นไปทำอะไรต่อ ถ้าใช้ครั้งเดียเลิกก็แล้วไป แต่ถ้าต้องมีการใช้ต่อ ใช้ cookie จะดีกว่าครับ
Ford AntiTrust
DominixZ - ใช้ผ่าน cookie นี่ดีแล้วหล่ะครับ javascript+cookie เป็น client side ซึ่งช่วยในการลดโหลดฝั่ง server ไปได้เยอะ ในเรื่อง session storage ซึ่งถ้าทำผ่าน ajax/webservice นี่มันจะโหลด server มาก 1 connection/page ครับ ซึ่งเป็นการทำโดยพลักภาระไปให้ server โดยไม่จำเป็นครับ
ezy
ใน .NET มันสามารถเรียกค่าเหล่านี้ได้จาก WebRequest เลยนะ ผมคิดว่า PHP เองก็น่าจะมีเหมือนกัน เพราะกระบวนท่าที่ยกตัวอย่างนี้มันออกจะพลิกแพลงผิดปกติไปหน่อย
Ford AntiTrust
ezy - มันก็ไม่ได้ผิดปกติอะไรนะครับ เค้าใช้กันทั่วไปนะ เพราะอ่านจากทั้ง Java, ASP.NET หรือ PHP ก็แนะนำให้ใช้ JavaScript ทั้งนั้นครับ ลองอ่านเพิ่มเติมที่ http://www.howtocreate.co.uk/tutorials/javascript/browserwindow ดูนะ ผมมองว่าใช้ Client Size น่าจะดีกว่า และ Example ของ PHP ก็ตามที่ @poakpong แนะนำทั้งนั้นเลยครับ
ezy
ผมคิดว่าการส่งค่า Javascript ผ่านไปยัง Cookie แล้วให้ Server-side script เรียกค่ามาดูอีกทีมันดูลึกล้ำไปหน่อยนะ (แต่ใครจะรู้ จริงๆ พวก Server-side หลายๆ เจ้า ก็อาจจะใช้วิธีนี้อยู่)