A-AA+then

ตัวอย่างนี้้เป็นตัวอย่างการร้องขอข้อมูลจาก Server หลังจาก submit โดยใช้ GFrom ซึ่งข้อมูลที่ต้องการ สามารถเลือกได้โดยใช้ checkbox ทำการเลือก และเมื่อ submit ไปแล้ว เราจะได้ข้อมูลที่ต้องการกลับมา เป็นการประยุกต์ใช้ checkbox ในแบบแอเรย์แบบหนึ่งครับ

ในตัวอย่างนี้ ผมได้ให้ข้อมูลที่ส่งกลับมาแสดงเป็นผลรวมของ checkbox ทุกๆตัวที่ถูกเลือก ซึ่งเราอาจได้ผลลัพท์นี้มาจากวิธีอื่นๆก็ได้นะครับ เช่นการ query ข้อมูลออกมาจากฐานข้อมูลก็ได้
<form id="check_form" method="post" action="chkarray.php">
<?php
    for($i = 0 ; $i < 10 ;$i++){
        echo "<p><input type=\"checkbox\" name=\"check[]\" value=\"$i\" />$i</p>\n";
    }
?>

<p><input type="text" id="chk_result" /><input type="submit" value="Get Data" /></p>
</form>

โค้ดฟอร์มของข้อมูลครับ โดยมี checkbox จำนวน 10 ตัวเป็นแบบ Array ชื่อ check โดยมีค่าตั้งแต่ 0 - 9 (สามารถ view source ได้จากตัวอย่างเลยนะครับ)
<script type="text/javascript">
new GForm('check_form').onsubmit(doGetCheck);
</script>

โค้ด Javascript ที่เกี่ยวข้องกับฟอร์มครับ ถ้าไม่เข้าใจลองไปดูบทเรียนเกี่ยวกับ GForm ครับ
<script type="text/javascript">
var doGetCheck = function(xhr){
    $E('chk_result').value = xhr.responseText;
};
</script>

โค้ด Javascript ที่รับค่าจาก GForm ครับ สามารถเอาไปไว้ไฟล์ JS ภายนอกได้ครับ มีหน้าที่รับข้อมูลที่ส่งกลับมา แล้วนำไปใส่ใน textbox เท่านั้นครับ
<?php
    $r = 0;
    if(isset($_POST[check])) foreach($_POST[check] AS $item){
        $r = $r + $item;
    }
    echo $r;
?>

โค้ด chkarray.php ซึ่งรับค่า submit มาจากฟอร์ม check_form ซึ่งในตัวอย่างนี้ ค่าของ checkbox ที่ถูกเลือกจะถูกส่งมาที่ $_POST[check] ซึ่งเป็น Array ตามที่กำหนดในฟอร์ม และตามตัวอย่าง ผมได้ทำการวนลูปเพื่อรวมค่าของ check ที่ถูกเลือกและส่งกลับไปแสดงผลครับ

ตัวอย่าง view source ดูโค้ดได้นะครับ

Relate

^