|
|
|
ผมติดปันหาเรื่อง SESSION กับ If Else อะครับรบกวนพี่ ๆ ที่ครับ |
|
|
|
|
|
|
|
อธิบายสั้นๆ ยาก หน่อย เกรงว่าจะตอบไม่ครบ
คำถามเข้าใจยากนิดนึง ลองเซฟรูปแต่ละเพจ มาดู จะได้เข้าใจง่ายๆ คับ
|
|
|
|
|
Date :
2014-11-14 09:05:38 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
page 1.php
อันไหนติ๊ก checkbox ให้ SESSION เป็น 1 ไม่ติ๊กก็ให้เป็น 0 ก็ได้ครับ ง่ายๆ
$SESSION["var"]["1"] = value;
page 2.1.php - page 2.7.php
แต่ละหน้าก็เช็คไปว่า $SESSION["var"]["1"] เท่ากับ 1 มั้ย ไม่เท่ากับก็ Redirect ไป
ผมเข้าใจถูกเปล่าหว่า
https://www.thaicreate.com/php/php-session.html
|
|
|
|
|
Date :
2014-11-14 09:22:30 |
By :
armdbz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
****เมื่อ คลิ๊กที่ Checkbox ที่ 1 หน้าที่ 2.1 จะต้องไม่ show ครับ ให้ข้ามไปทำหน้าที่ 2.2.php เลยครับ
****เมื่อ คลิ๊กที่ Checkbox ที่ 2 หน้าที่ 2.2 จะต้องไม่ show ครับ ให้ไปเริ่มที่หน้า 2.1.php และข้ามไป 2.3.php เลยครับ
(เนื่องจากเราเลือก Service ที่ไม่ได้ใช้งาน)
อันนี้คือหน้า แรก 1.php ข้อที่ 1-7 เป็น service ใหญ่จะมีหน้า แยกย่อย อีก 7 หน้าครับ คือหน้านี้ เมื่อ
ผู้ใช้งาน คลิ๊ก Service ที่ไม่ได้ใช้งาน ก็จะไม่ show หน้าย่อยของแต่ละข้อครับ
แล้วก้อ save ครับ 1save.php
ส่วนอันนี้คือหน้า ย่อยของแต่ละข้อครับ
หน้าที่ 2.1.php
save หน้าที่ 2.1save.php
และก็หัวขอที่ 2.2 - 2.7 ตามลำดับครับ จะเป็นแบบนี้หมดครับ
|
|
|
|
|
Date :
2014-11-14 09:25:03 |
By :
hanakobz112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ armdbz น่าจะใช้นะครับ
แต่ผม อ่อนเรื่อง If else กับ Session มากครับบ T^T
ผมจะต้อง เอาไป check ที่ File เดวกันหรือยังไงครับ
|
|
|
|
|
Date :
2014-11-14 09:27:52 |
By :
hanakobz112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ละหน้ามันมีหน้า save ของแต่ละอันมาด้วยอะครับ
ผมก้อเลยไม่รุ้จาข้ามหน้ายังไงดี
รบกวนพี่ ๆ code มาไห้ดูเป็นตัวอย่าง ง่าย ๆ สัก กระเบื้อง หน่อยครับบบ
ขอบพระคุนมากๆครับ
|
|
|
|
|
Date :
2014-11-14 09:38:15 |
By :
hanakobz112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
html ตัวส่ง
Code (PHP)
<form action="ตัวรับและส่งต่อ.php" >
for chkbox1<input type="chedkbox" name="for_chkbox1" value="1" > >
<button>Save</button>
</form>
php ตัวรับ และ ส่งต่อ
Code (PHP)
<?php
session_start(); $_SESSION['old_request']=$_REQUEST;
do_somethaig();
header('location: ตัวแสดงผล.php');
?>
ตัวแสดงผล.php
Code (PHP)
<?php
session_start();
$old_request=$_SESSION['old_request'];
?>
<input type="chedkbox" name="for_chkbox1" <?=(isset( $_SESSION['for_chkbox1']) ? 'checked' : '')?> >
|
|
|
|
|
Date :
2014-11-14 09:39:16 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูไปดูมาผมก็ยังไม่ค่อยเข้าใจ
ว่ามันแยกย่อย กี่อันกี่ระดับ อันไหนไม่ต้องแยก
พอเข้าใจนิดหน่อยละ ไม่รู้ว่าถูกป่าวนะ เอาทีละเสตป
คำถามถ้าเราบันทึก ทีละเพจแบบนี้ ถ้าคนเขาทำแบบสอบถามไม่ครบทุกหน้าที่ควรจะเป็น จะเป็นอย่างไรถ้าเก็บข้อมูลไม่จบทั้งหมด
ควรบันทึกทีเดียว ตอนหน้าสุดท้ายหรือไม่
|
ประวัติการแก้ไข 2014-11-14 09:44:55
|
|
|
|
Date :
2014-11-14 09:41:56 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**แยกย่อยเฉพาะข้อที่ 1-7 ในหน้าที่ 1.php ครับ**
ข้อที่ 1 ของหน้าที่ 1.php หน้าที่ย่อยมาคือ 2.1.php
ข้อที่ 2 ของหน้าที่ 2.php หน้าที่ย่อยมาคือ 2.2.php
ข้อที่ 3 ของหน้าที่ 3.php หน้าที่ย่อยมาคือ 2.3.php
ข้อที่ 4 ของหน้าที่ 4.php หน้าที่ย่อยมาคือ 2.4.php
ข้อที่ 5 ของหน้าที่ 5.php หน้าที่ย่อยมาคือ 2.5.php
ข้อที่ 6 ของหน้าที่ 6.php หน้าที่ย่อยมาคือ 2.6.php
ข้อที่ 7 ของหน้าที่ 7.php หน้าที่ย่อยมาคือ 2.7.php
งั้นผมควรที่จะบันทึกทีเดียวหน้าสุดท้ายเลยหรอครับบ ตอนผมทำไม่มีคน ไกด์ไลน์ + กับความรุ้อันต่ำต้อย T^T
|
|
|
|
|
Date :
2014-11-14 09:56:55 |
By :
hanakobz112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือจริงๆ ผมก็มีวิธี แต่มันแอ็ดวานซ์ไปหน่อย เกรงว่าคุณจะไม่เข้าใจ
ที่ผมถามนั้น คือผมมองว่าแบบสองถามพวกนี้ ต้องนำไปใช้วิเคราะห์ในภายหลัง หากมีบางคนทำได้สอง สามหน้า ข้อมูลก็ไม่ครบใช่ไหม?
มีวิธีเพิ่มคือ เราสามารถตัดข้อมูลที่ไม่ครบ ไม่เอามาคำนวณด้วย ก็ได้ หรือจำเอาไปคำนวณด้วยก็ได้แต่เอาเฉพาะข้อมูลที่มี
แน่นอนว่าคุณจะใช้วิธีเดิมของคุณ คุณต้องลองผิดลองถูกเอาเองครับ ต้องฝึก if else
และใช้ session บันทึกว่าหน้าไหนที่ไม่ได้ติ๊กไว้ และบันทึกว่า หน้าไหนทำไปแล้วบ้าง เช่น
1save.php
$unuse = '';
$unuse .= empty($_POST['cb1']) ? '' : '1,';
$unuse .= empty($_POST['cb2']) ? '' : '2,';
$unuse .= empty($_POST['cb3']) ? '' : '3,';
$unuse .= empty($_POST['cb4']) ? '' : '4,';
$unuse .= empty($_POST['cb5']) ? '' : '5,';
$unuse .= empty($_POST['cb6']) ? '' : '6,';
$unuse .= empty($_POST['cb7']) ? '' : '7,';
$unuse_services = explode(',', $unuse); //เก็บข้อมูลเฉพาะที่ได้ต๊ิกไว้ (ไม่ใช้งาน)
คราวนี้จะได้ ตัวบริการที่ไม่ได้ใช้บริการ ส่วนที่ติ๊กไว้
สมมติจะเก็บไว้ในเซสชั่นก็
$_SESSION['unuse_services'] = $unuse_services;
พอจะตรวจว่าควรไปหน้าไหนต่อ ตรงนี้ป่าวที่เป็นปัญหา จากข้อความ
****เมื่อ คลิ๊กที่ Checkbox ที่ 1 หน้าที่ 2.1 จะต้องไม่ show ครับ ให้ข้ามไปทำหน้าที่ 2.2.php เลยครับ
****เมื่อ คลิ๊กที่ Checkbox ที่ 2 หน้าที่ 2.2 จะต้องไม่ show ครับ ให้ไปเริ่มที่หน้า 2.1.php และข้ามไป 2.3.php เลยครับ
Code (PHP)
$goto = '2.1.php';
if (in_array(1, $unuse_services)) // เมื่อติ๊กอันแรก
$goto = '2.2.php';
elseif (in_array(2, $unuse_services)) // เมื่อติ๊กอันที่ 2
$goto = '2.1';
elseif (in_array(1, $unuse_services) && in_array(2, $unuse_services)) // เมื่อติ๊กทั้ง สองอันแรก
$goto = 'xxx';
header('location: '.$goto);
|
ประวัติการแก้ไข 2014-11-14 11:21:40
|
|
|
|
Date :
2014-11-14 11:20:08 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|