ขอถามการส่งค่าที่แสดงในตารางหนึ่่่งไปแสดงยังอีกไฟล์หนึ่่ง
ผ่านฟอร์ม GET หรือ POST ครับ
Date :
2011-12-08 13:02:42
By :
Dragons_first
เอ...ผมยังไม่เข้าใจเลยว่าถามว่าอย่างไร ....
ถามแบบมีที่มาที่ไปบ้าง... ถามให้ชัดเจน ทำอะไรไปแล้วบ้าง แล้วเกิด error อย่างไร....
Date :
2011-12-08 13:04:59
By :
Songkram
จาก code อันแรก ทำหน้าที่ search ข้อมูลจากฐานข้อมูลออกมาแสดง ในตารางที่เห็นในภาพ
จากนั้นข้อมูลในตารางที่เกิดจากการค้นหาตามเงื่อนไข จะถูกส่งโดยกด export ไปแสดงยังอีกตารางหนึ่ง
ซึ่งเป็น code อันที่ 2 ทำหน้าที่ในการรับ ข้อมูล แต่ข้อมูลที่แสดงไม่เป็นไปตามเงื่อนไขของ search
คือ ข้อมูลจะถูกลิสออกมาทั้งฐานข้อมูล
Date :
2011-12-08 13:13:05
By :
sbruang
ตรวจสอบตรงนี้หน่อยครับ
SELECT * FROM member WHERE groupID = '$select_groupID' ORDER BY id
ว่า $select_groupID มีค่าเท่ากับเท่าไหร.... จากภาพตัวแปรตัวนี้มีค่าแต่ได้ค่าอะไรมา (จากเงื่อนไข !empty($select_groupID)) เพราะมันควรจะเป็นตัวเลข ID
Date :
2011-12-08 13:38:14
By :
Songkram
ยังไงก็ต้องทำผ่านฟอร์ม GET หรือ POST อยู่ดีแหละครับ ถ้าหากว่าข้อมูลที่ค้นหามานั้นมีมากกว่า 1 รายการล่ะ เอา id เหล่านั้นส่งค่าผ่านฟอร์ม เพื่อเอาไปใช้ต่ออีกหน้าไงครับ
Date :
2011-12-08 13:54:22
By :
Dragons_first
ขอแก้ไข code นะครับ form รับน่าจะประมาณนี้ ตอนแรกน่าจะกอปมาผิด
Date :
2011-12-08 13:55:01
By :
sbruang
ถ้าใช้หน้ารับตัวใหม่ที่ให้มาคิดว่าน่าจะผิดมากกว่าเดิมอีกครับ เพราะเงื่อนไขไม่ได้ถูกตรวจสอบที่ใดเลย มีแต่คิวรี่ที่ joint กันแบบไม่ค่อยมาตราฐานด้วยครับ
หน้าส่งน่ะส่งแบบ POST มาจะได้ตัวแปรอะไรบ้าง ให้ลองตรวจสอบโดย print_r($_POST); ดูที่หน้าไฟล์รับนะครับ
ส่วนหน้ารับ ถ้าจะ WHERE ด้วย ID ก็น่าจะเป็นประมาณนี้ครับ
Code (PHP)
$select_groupID = $_POST[id] //id ในที่นี้ก็คือตัวแปรที่ POST มาจากหน้าส่งนะครับ
$sql = "SELECT ................... FROM ...................... WHERE id = '$select_groupID' ";
Date :
2011-12-08 14:12:58
By :
Songkram
ขอถามทำความเข้าใจนิดหนึ่งครับ ปกติเห็น form ส่งแบบ post get ไป
แต่ของผมตัวแปรอยู่ในตาราง ก็เลย งงๆ เลยคร่อม form ไปในตาราง
วิธีนี้ทำได้ไหมครับ
Date :
2011-12-08 14:32:01
By :
sbruang
สามารถเอาตารางใส่ไว้ใน form ได้ครับ และทุกๆตัวแปรที่อยู่ใน form ก็จะถูกส่งไปทั้งหมดครับ
การส่งแบบ POST และ GET จะเหมาะกับข้อมูลประเภทต่างกันนะครับ ใช้ให้เหมาะสมด้วยเน้อ
ที่คนส่วนใหญ่มักจะผิดก็ตรงที่ตอนส่งกับตอนรับมันไม่ตรงกัน เพราะฉะนั้นควรจะใช้ print_r ช่วยในการตรวจสอบครับ
ประวัติการแก้ไข 2011-12-08 14:46:41
Date :
2011-12-08 14:45:57
By :
Songkram
ถ้าหากเป็นกรณีแบบที่ผมเข้าใจ ก็เอาแค่ id ของฟิลด์ที่ค้นหาได้ส่งผ่านฟอร์มเพื่อ ไปใช้ select ในหน้าใหม่สิครับ
ประวัติการแก้ไข 2011-12-08 14:50:32
Date :
2011-12-08 14:49:42
By :
Dragons_first
ตามนี้ถูกไหมครับ
Code (PHP)
<form action="../Excel/phpExportDatabaseToExcel.php" method="POST">
<table width="615" border="1" align="center">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="98"> <div align="center">ชื่อ</div></th>
<th width="198"> <div align="center">นามสกุล</div></th>
<th width="198"> <div align="center">ตำแหน่ง</div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center">
<?=$objResult["id"];?></div></td>
<td><?=$objResult["fname"];?></td>
<td><?=$objResult["lname"];?></td>
<td><?=$objResult["j_name"];?></td>
</tr>
<?
}
?>
</table>
<div align="center">
<input type="submit" />
Date :
2011-12-08 15:02:46
By :
sbruang
งั้นผมขอลำดับเหตุการณ์ก่อนนะครับ... เพราะ code ที่ให้มา คุณตัดมาใช่มั้ยครับ ผมเลยไม่ค่อยแน่ใจ....
1 .ขั้นตอนการ search เป็นไฟล์ที่มีช่องเอาไว้กรอกข้อมูลแล้วเมื่อกด search ก็จะแสดงรายการขึ้นมาใช่มั้ยครับ
ตรงนี้มีหลายวิธีในการแสดงผล.. แต่ถ้าแบบง่ายที่สุด (1 ไฟล์) ก็....
- ไฟล์ที่ 1 สร้างฟอร์มสำหรับ search โดยที texbox อยู่ข้างบน โดย method="POST" action="ชื่อไฟล์นี้แหละครับ"
ฟอร์มนี้ครอบแค่ textbox กับปุ่ม search ก็พอ
- ถัดลงมาจะมีตัวตรวจสอบว่ามีการส่งตัวแปรอะไรมาหรือเปล่า เพื่อนำไปใช้ในการแสดงผลครับ เช่น
Code (PHP)
if ($_POST[txtSearch]) { //txtSearch ก็คือตัวแปร POST ที่ถูกส่งมาจากฟอร์มข้างบนนั่นแหละครับ
$txt = $_POST[txtSearch];
//ตรงนี้ก็จะเป็นตารางรายการสำหรับแสดงผลลัพธ์ ในกรณีที่มีการส่ง $_POST[txtSearch] มาด้วย
//(คล้ายๆกับรูปแรกที่ให้มานั่นแหละ)
$sql = "SELECT .... FROM ..... WHERE ...." //เงื่อนไข WHERE ตาม $txt ที่ได้มาจากขั้นตอนก่อนหน้าครับ
//ตารางนี้ไม่ได้อยู่ในฟอร์นะครับ
//ในตารางนี้อาจจะมีปุ่มต่อท้ายในแต่ละแถวด้วยเพื่อกดไปหน้าแสดงรายละเอียดหรืออะไรก็แล้วแต่
} else {
//ตรงนี้จะแสดงข้อความหรือตารางว่างๆไว้ก็ได้ครับ
}
ถัดลงมาก็จะเป็นปุ่มกดเพื่อเอารายการไปออกเป็นไฟล์ excel ...... ปุ่มนี้จะคลิกเพื่อส่งค่าไปที่ไฟล์ที่ 2 โดยส่งค่า $txt ไปด้วย (อาจจะเป็น POST หรือ GET ก็ได้)
2. ขั้นตอนการออก excel (ไฟล์ที่ 2 ) ปุ่มที่กดโดยไฟล์ที่ 1 นั้นจะมาเรียกไฟล์นี้ขึ้นมาทำงานโดยส่งค่าบางอย่างมาด้วย ซึ่งก็น่าจะเป็นตัวแปร $txt นั่นล่ะครับที่จะถูกส่งมาที่นี่
เพราะฉะนั้นไฟล์นี้ในตอนต้นก็ต้องตรวจสอบ POST หรือ GET ที่ส่งมาด้วยครับ เพื่อนำไปเป็นเงื่อนไขในการคิวรี่ก่อนแสดงผล (excel) คิวรี่ในหน้านี้ก็จะคล้ายๆกับไฟล์แรกเลยครับ เพียงแต่การแสดงผลต่างกัน
.....................................................
ขออภัยนะครับที่ไม่สามารถทำตัวอย่างแบบเต็มได้ เพราะไม่ค่อยสะดวกในการเขียนสักเท่าไหร่.....
Date :
2011-12-08 15:32:57
By :
Songkram
Code (PHP)
if ($_POST[txtSearch]) { //txtSearch ก็คือตัวแปร POST ที่ถูกส่งมาจากฟอร์มข้างบนนั่นแหละครับ
$txt = $_POST[txtSearch];
//ตรงนี้ก็จะเป็นตารางรายการสำหรับแสดงผลลัพธ์ ในกรณีที่มีการส่ง $_POST[txtSearch] มาด้วย
//(คล้ายๆกับรูปแรกที่ให้มานั่นแหละ)
$sql = "SELECT .... FROM ..... WHERE ...." //เงื่อนไข WHERE ตาม $txt ที่ได้มาจากขั้นตอนก่อนหน้าครับ
//ตารางนี้ไม่ได้อยู่ในฟอร์นะครับ*********ตารานี้ต้องใส่อีก form ไหมครับ เพื่อให้กด submit แล้วส่งไปยัง form ที่ 2 เหมือน No. 11
//ในตารางนี้อาจจะมีปุ่มต่อท้ายในแต่ละแถวด้วยเพื่อกดไปหน้าแสดงรายละเอียดหรืออะไรก็แล้วแต่
} else {
//ตรงนี้จะแสดงข้อความหรือตารางว่างๆไว้ก็ได้ครับ
}
Date :
2011-12-08 16:06:59
By :
sbruang
Load balance : Server 00