ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingผมควรส่งค่าอย่างไรดี ล่ะอีแบบนี้
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ผมควรส่งค่าอย่างไรดี ล่ะอีแบบนี้  (อ่าน 2293 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Kizmo
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 200



ดูรายละเอียด เว็บไซต์
« เมื่อ: 26 กันยายน 2008, 23:01:45 »

ผมควรส่งค่าแบบไหนหาก

หน้า loop นั้นได้ loop ค่าออกมา 2 แบบ คือ
1. id
2. filename
แล้วผมจะส่งทั้งค่าทั้งหมดไปอีกหน้าได้อย่างไร
(ใน 1 loop ต้องส่งค่าทั้ง 2 แบบ ตามจำนวน loop)

เท่าที่ผมลองดู คิดได้เพียงส่งเป็น $_SESSION แล้ว [] ด้านท้าย (search ใน google ได้มา)
เป็น $_SESSION['id'][] และ $_SESSION['filename'][]

แต่พอรับค่าอีกหน้ามักจะเกิดปัญหาหลายกรณีเช่น
1. error []
2. echo ค่าแรกได้ ค่าถัดมา ออกเฉพาะตัวแรก และต่อ ๆ ไปก้อไม่ออกค่าเลย
และในบางครั้งก้อใช้งานได้ ออกค่าได้ทั้งหมด
(ตอนแรกผมคิดว่า appserv มันเพี้ยน แต่ลองกับหลายเครื่องเป็นคล้าย ๆ กัน)

สรุป...
ผมขอโค้ดว่าผมจะส่งค่าหลายค่า ๆ ในหลาย ๆ แบบ ข้ามหน้าได้อย่างไร
บันทึกการเข้า

รับถ่ายภาพ http://emofoto.net
digitalex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 670



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 26 กันยายน 2008, 23:25:50 »

อ่านแล้ว Huh? Huh?
ถ้าส่งข้ามหน้าไมไม่ส่งแบบ $_GET[] ไปอ่าครับ
บันทึกการเข้า

sincere
สมุนแก๊งเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 717



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 26 กันยายน 2008, 23:29:22 »

ทำไมไม่เก็บเป็น array ไปแล้วค่อยไป split ค่าอีกหน้านึงหละ
บันทึกการเข้า

liveadsense
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 109
ออฟไลน์ ออฟไลน์

กระทู้: 1,300



ดูรายละเอียด
« ตอบ #3 เมื่อ: 26 กันยายน 2008, 23:33:24 »

session_start(); ใส่ นี้ยังอ่ะ ตอนเรียกดูค่า อ่ะ
บันทึกการเข้า


เตือนตัวเอง ว่าเก่งได้ แต่อย่ากร่าง
รู้รับฟัง ไม่ใช่พล่ามเป็นน้ำไหล
อย่าหลงตน ให้คนอื่นเหนื่อยหน่ายใจ
เจอบันได ถ้าขึ้นได้ ต้องลงเป็น
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 26 กันยายน 2008, 23:34:28 »

งงอย่าง ทำไม $_SESSION['id'][] และ $_SESSION['filename'][]

น่าทำเป็น

$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['id']
$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['filename']

เวลาวนลูปก็จะได้สบายๆ ด้วย foreach

 Tongue

ถามหน่อย หน้าที่เป็นเป้าหมายที่อยากส่งไป มันเป็น popup หรือเปล่า ?
หรือเป็นหน้าที่โดนเรียกด้วยจาวาสคิรปหรือเปล่า

ถ้าใช่ ก็อ่านนี้นะ http://www.thaiseoboard.com/index.php/topic,22515.0.html
บันทึกการเข้า

Kizmo
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 200



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 26 กันยายน 2008, 23:51:12 »

อ่านแล้ว Huh? Huh?
ถ้าส่งข้ามหน้าไมไม่ส่งแบบ $_GET[] ไปอ่าครับ


ถ้าส่งค่า get ด้วยค่าจาก loop ได้ ช่วยเขียนให้ดูหน่อย

ทำไมไม่เก็บเป็น array ไปแล้วค่อยไป split ค่าอีกหน้านึงหละ


ช่วยเขียนให้ดูเป็นตัวอย่างได้ป่าวคับ

session_start(); ใส่ นี้ยังอ่ะ ตอนเรียกดูค่า อ่ะ


ผมใส่แล้วคับ ถ้าไม่ใส่จะรับค่า session ได้ไงล่ะคับ

งงอย่าง ทำไม $_SESSION['id'][] และ $_SESSION['filename'][]

น่าทำเป็น

$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['id']
$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['filename']

เวลาวนลูปก็จะได้สบายๆ ด้วย foreach

 Tongue

ถามหน่อย หน้าที่เป็นเป้าหมายที่อยากส่งไป มันเป็น popup หรือเปล่า ?
หรือเป็นหน้าที่โดนเรียกด้วยจาวาสคิรปหรือเปล่า

ถ้าใช่ ก็อ่านนี้นะ http://www.thaiseoboard.com/index.php/topic,22515.0.html


$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['id']
$_SESSION['tmp_var'][count($_SESSION['tmp_var'])]['filename']

แล้วผมจะใช้ foreach แตกตัวแปรแยกออกจากกันได้ไงครับเนี่ย
« แก้ไขครั้งสุดท้าย: 27 กันยายน 2008, 00:16:39 โดย Kizmo » บันทึกการเข้า

รับถ่ายภาพ http://emofoto.net
digitalex
สมุนแก๊งเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 670



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 27 กันยายน 2008, 00:06:09 »

โค๊ด:
for($i=0;$i<count($loop);$i++)
$value.="&value".$i."=".$loop[$i];
$link="<a href='page2.php?$value'>page2</a>";

แบบนี้น่าจะได้นะ
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 27 กันยายน 2008, 00:21:05 »

งั้นอีกวิธี กินระบบด้วย

เอา array ที่อยากเก็บไป serialize แล้วบันทึกลงไฟล์

ไปเป้าหมาย แล้วอ่านไฟล์แล้ว unserialize ใส่ array

ค่อยนำไปใช้  Tongue

บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #8 เมื่อ: 27 กันยายน 2008, 05:29:43 »

ผมควรส่งค่าแบบไหนหาก

หน้า loop นั้นได้ loop ค่าออกมา 2 แบบ คือ
1. id
2. filename
แล้วผมจะส่งทั้งค่าทั้งหมดไปอีกหน้าได้อย่างไร
(ใน 1 loop ต้องส่งค่าทั้ง 2 แบบ ตามจำนวน loop)

เท่าที่ผมลองดู คิดได้เพียงส่งเป็น $_SESSION แล้ว [] ด้านท้าย (search ใน google ได้มา)
เป็น $_SESSION['id'][] และ $_SESSION['filename'][]

แต่พอรับค่าอีกหน้ามักจะเกิดปัญหาหลายกรณีเช่น
1. error []
2. echo ค่าแรกได้ ค่าถัดมา ออกเฉพาะตัวแรก และต่อ ๆ ไปก้อไม่ออกค่าเลย
และในบางครั้งก้อใช้งานได้ ออกค่าได้ทั้งหมด
(ตอนแรกผมคิดว่า appserv มันเพี้ยน แต่ลองกับหลายเครื่องเป็นคล้าย ๆ กัน)

สรุป...
ผมขอโค้ดว่าผมจะส่งค่าหลายค่า ๆ ในหลาย ๆ แบบ ข้ามหน้าได้อย่างไร


คือจะบอกว่า จะส่ง array ข้ามหน้าได้งัยว่างั้นเหอะ
บันทึกการเข้า

Kizmo
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 200



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 27 กันยายน 2008, 06:03:02 »

คือจะบอกว่า จะส่ง array ข้ามหน้าได้งัยว่างั้นเหอะ

ส่งข้ามหน้า หลายค่า และแยกออกเป็น 2 ประเภทด้วย
เช่น ส่งค่า id 10 ค่า และ filename 10 ค่า
แต่ใน 1 รอบจะต้องส่งค่าพร้อมกัน 2 แบบ แบบละ 1 ค่า
เช่น ใน 1 loop จะต้องเก็บค่า id 1 ค่า filename 1 ค่า (เก็บคู่กัน เพราะต้องใช้ร่วมกัน)
แล้ว loop สัก 10 รอบ ก้อจะได้ข้อมูลทั้งหมด 20 ข้อมูล
แล้วส่งข้ามหน้าโดยให้อีกหน้ารับ loop แล้วแยกประเภทได้ด้วย

อย่าง foreach มันตั้งได้แค่ค่าเดียว
เช่น foreach($_SESSION['id'] as $id)
ทีนี้ผมจะ loop แล้วแตกข้อมูล $_SESSEION['filename'] ด้วย ไปพร้อม ๆ กัน

** ยัง งง กัน อยู่ รึ เปล่า เอ่ย
*** ผม ยิ่ง เป็น คน สื่อ อะ ไร เข้า ใจ ยาก ๆ อยู่ ดู จาก ประ วัติ กระ ทู้ ผม ได้ 555+
บันทึกการเข้า

รับถ่ายภาพ http://emofoto.net
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #10 เมื่อ: 27 กันยายน 2008, 06:36:56 »

ผมลองแระ เหมือนกับว่า $_SESSION ไม่เหมาะจะเก็บ array

ลองทดสอบดูตามผมละกัน

โค๊ด: (index.php)
<?php

session_start
();

$_SESSION['rgb'] = array('red' 'green' 'blue'); 


?>

<a href="index-2.php">Next</a>

โค๊ด: (index-2.php)
<?php

session_start
();

echo 
"<p><b>Array Member</b><br/>";
print_r($_SESSION['rgb']);
echo 
"</p>";



echo 
"<p><b>Access Array Using For Loop</b><br/>";
for(
$i=0;$i<count($_SESSION['rgb']);$i++) {
echo $_SESSION['rgb'][$i] . "<br/>";
}
echo 
"</p>";



echo 
"<p><b>Access Array Using Foreach Loop</b><br/>";
foreach(
$_SESSION['rgb'] as $rgb) {
echo $rgb "<br/>";
}
echo 
"</p>";


?>

<a href="index.php">Back</a>

มีทั้งหมด 2 ไฟล์ ไฟล์ index.php จะสร้าง session โดยเก็บ array ไว้ใน session แล้วทดสอบโดยคลิ้กไป index-2.php

ผล ของ index-2.php
โค๊ด:
Array Member
Array ( [0] => red [1] => green [2] => blue )

Access Array Using For Loop
red
green
blue


Access Array Using Foreach Loop
red

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\session\index-2.php on line 20


Back

แต่ถ้า refresh index-2.php ปุ้บ ค่า array ที่เก็บใน session จะถุกเปลี่ยนเป็น string โดยที่เอาสมาชิกตัวแรกมาเป็นค่าของตัวแปรนั้นแทน

โค๊ด:
Array Member
red

Access Array Using For Loop
r


Access Array Using Foreach Loop

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\session\index-2.php on line 20


Back


นอกจากนั้นสังเกตุดูดีดี foreach ไม่สามารถเข้าถึง array ที่เก็บใน session ได้เลย  Shocked

ผมว่าต้องใช้วิธีโจ้แล้วหล่ะ
บันทึกการเข้า

payu
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 125
ออฟไลน์ ออฟไลน์

กระทู้: 1,887



ดูรายละเอียด
« ตอบ #11 เมื่อ: 27 กันยายน 2008, 08:31:49 »


เอางี้

file p1.php
โค๊ด:
<?
session_start();

$pass_array = array();

for ($i=0; $i < 20 ;$i++)
  $pass_array[] = array('id' => $i, 'filename' => 'file '.$i);
 
$_SESSION['pass_array'] = $pass_array;

?>
<a href="p2.php">p2</a>

file p2.php
โค๊ด:
<?
session_start();

foreach ($_SESSION['pass_array'] as $i => $item)
  echo "[$i] => id = {$item['id']}, file = {$item['filename']}<br>\n";
?>

บันทึกการเข้า

Kizmo
ก๊วนเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 200



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 27 กันยายน 2008, 09:07:03 »

ตอนนี้คิดได้เพียง เอา 2 ค่ามารวมกัน
เช่น ค่า id (30) กะ filename(ขนาดตามชื่อที่ได้มา ไม่แน่นอน)
เอามารวมอยู่ในตัวแปรเดียวกัน แล้วส่งเพียงค่าเดียว
แล้วอีกหน้าใช้ตัดแบ่งเอา 30 ตัวแรกเป็น id ส่วนที่เหลือเป็น filename

คุณพี่ ๆ ว่าเวิร์คมั๊ย


ส่งค่า $_SESSION['array'][] = $id.$filename;

รับค่า foreach ($_SESSION['array'] as $array)
{
   $id = substr($array, 0, 30);
   $filename = substr($array, 30);
}
« แก้ไขครั้งสุดท้าย: 27 กันยายน 2008, 09:14:26 โดย Kizmo » บันทึกการเข้า

รับถ่ายภาพ http://emofoto.net
หน้า: [1]   ขึ้นบน
พิมพ์