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

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

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

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

กระทู้: 566



ดูรายละเอียด
« เมื่อ: 01 กันยายน 2014, 17:34:21 »

สวัสดีครับ พี่ๆ โปรแกรมเมอร์

พอดีผมหาตัวอย่างที่ต้องการมาได้
แต่ติดที่ว่า เค้าไม่ทำหน้ารับค่าให้ดู
รับกวนพี่ แนะนำด้วยครับ การใช้หน้า store.php ในการรับค่ามาใช้งาน

อ้างถึง
<html>
<head>
<title>Checkbox test</title>
<script src="http://ajax.googleapis.com/aja...ibs/jquery/1.4.2/jquery.min.js " type="text/javascript"></script>

</head>
<body>

<input type="checkbox" class="messageActivated" value="msg0">

</body>

<script type="text/javascript">
$(".messageActivated").bind('click', function() {
    if($(this).attr('checked'))
    {
        $.get("store.php", { checked: 1, msgId: $(this).attr('value') } );
    }
    else
    {
        $.get("store.php", { checked: 0, msgId: $(this).attr('value') } );
    }
});
</script>
</html>
« แก้ไขครั้งสุดท้าย: 01 กันยายน 2014, 17:35:24 โดย JumDaiDee » บันทึกการเข้า

สินค้าออนไลน์ https://www.shoppook.com/product | โปรแกรมออนไลน์ : https://appnon.com
dragons_first
สมุนแก๊งเสียว
*

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

กระทู้: 953



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 01 กันยายน 2014, 17:38:29 »

$_GET['msgId']; //// value store.php
บันทึกการเข้า

รับทำเว็บไซต์ ตามขอบเขตของลูกค้าราคาเบาๆ

รับแก้สคริปท์ เพิ่มระบบ เปลี่ยนแปลงเลเอาท์เว็บไซต์ จัด cssใหม่ แก้การแสดงผลผิดเพี้ยน
ท่านจะได้รับการบริการที่เป็นกันเอง ราคาไม่แพง ต่อรองได้(แต่ไม่น่าเกลียด) คุยกันฉันมิตร นะฮ๊าฟฟฟฟฟ
p44n
Verified Seller
สมุนแก๊งเสียว
*

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

กระทู้: 676



ดูรายละเอียด
« ตอบ #2 เมื่อ: 01 กันยายน 2014, 17:39:01 »

<?
$checked=$_GET['checked']; // value 0 หรือ 1
$msgId=$_GET['msgId']; // value msg0

//เอา $checked,$msgId ไปทำไรต่อก็ว่าไปครับ
?>
บันทึกการเข้า

Python, PHP OOP, MVC CodeIgniter, MongoDB, MySQL, MsSQL ,CSS Tableless, Responsive Design, Cross-platform, Javascript, jQuery, AngularJS, NodeJS,  Fackbook API, Paypal API, Omise API, Google Map API, C# Window Applications, .NET Framework, JAVA (Android Developer, JSP), Hybrid Application with Cordova + Ionic Framework, ReactJS, React Native
zankumuro
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,036



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 01 กันยายน 2014, 17:39:36 »

รับค่าแบบฟอร์มธรรมดาเลยครับ

$.get() ก็รับด้วย $_GET[]

$.post() ก็รับด้วย $_POST[]
บันทึกการเข้า

อย่าเชื่อผมมาก ผมมันมั่ว.....ฮ่าๆ

ฝาก Like แฟนเพจหน่อยครับ
https://www.facebook.com/devsignup

ข่าวสารวงการเกมส์ ทริปทริคต่างๆ เกมส์แจกฟรี
https://www.wecanplay.in.th/
JumDaiDee
สมุนแก๊งเสียว
*

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

กระทู้: 566



ดูรายละเอียด
« ตอบ #4 เมื่อ: 01 กันยายน 2014, 17:53:06 »

เพิ่มเติมครับ ถ้าผมจะส่ง id ไปพร้อมกัน ต้องเพิ่มส่วนไหนครับ
ถ้า row ข้อมูลมาจาก db มันก็ะมี 10 ชื่อ แล้วอย่างให้ส่ง id ส่งไปด้วย ต้องทำอย่างไร ครับ

คือ ผมอยากเอาไปใช้ อัพเดท status ครับ

1 คือ id
A,D คือ status

ถ้ามี 10 ขื่อ ผมต้องเขียน javascript 10 ครั้งไหมครับ

<script type="text/javascript">
$(".messageActivated").bind('click', function() {
    if($(this).attr('checked'))
    {
        $.get("testdata.php", { checked: '1_A', msgId: $(this).attr('value') } );
    }
    else
    {
        $.get("testdata.php", { checked: '1_D', msgId: $(this).attr('value') } );
    }
});
</script>

ถ้าแบบนี้ $msgId=$_GET['msgId']; เวลา ติกออกมันก็ส่ง ค่าเดิม
ถ้าแบบนี้ $checked=$_GET['checked']; เปลี่ยนค่า เวลาติ๊ก หรือ ไม่ติก
« แก้ไขครั้งสุดท้าย: 01 กันยายน 2014, 17:54:45 โดย JumDaiDee » บันทึกการเข้า

สินค้าออนไลน์ https://www.shoppook.com/product | โปรแกรมออนไลน์ : https://appnon.com
zankumuro
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,036



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 01 กันยายน 2014, 19:52:20 »

แสดงว่ายังไม่เข้าใจชุดคำสั่งนี้ ไม่ต้องเขียนคำสั่งทั้ง 10 ครั้งครับ เพราะคำสั่งข้างบนนั้นเรียกใช้ $(".messageActivated") นั่นคือ ค่าตัวใดที่มีคลาสนี้ก็จะทำงาน และจะทำงานเมื่อไร ก็เมื่อทำการคลิกตามที่ได้กำหนดใน .bind('click', function(){...});

ที่ต้องทำคือเจ้า checkbox ที่จะใช้นี้ทั้ง 10 อันจะต้องระบุคลาส messageActivated ลงไปใน checkbox นั้น ตัวอย่าง

โค๊ด:
<input name="" type="checkbox" value="1" class="messageActivated">
<input name="" type="checkbox" value="2" class="messageActivated">
<input name="" type="checkbox" value="3" class="messageActivated">

ส่วนปัญหาเรื่องอยากจะส่งไอดีไปด้วยต้องทำยังไง ก่อนอื่นต้องทำความเข้าใจในส่วนการส่งค่า $.get("testdata.php", { checked: '1_A', msgId: $(this).attr('value') } );

testdata.php คือปลายทางไฟล์ที่จะส่งไป

{ checked: '1_A', msgId: $(this).attr('value') } คือข้อมูลที่จะส่งไป ซึ่งแยกเป็น ตัวแปร checked มีค่าเท่ากับ 1_A และตัวแปร msgId มีค่าเท่ากับค่าใน value ของ checkbox ที่ทำการคลิก

จากคำสั่งด้านบน checked เป็นค่า status ที่จะใช้อัพเดตแล้ว msgId ก็ควรเป็นค่า id ของข้อมูลนั้น ซึ่งจะได้ไม่ต้องส่งไปเป็น 1_A ต้องเอาไปแยกตัวแปรอีกวุ่นวาย เพราะตามความต้องการที่บอกมายังไม่เห็นว่าค่า value ใน checkbox จะใช้ทำอะไร ให้มันเป็น id ไปเลยดีกว่า


ปัญหาสุดท้าย $msgId=$_GET['msgId']; ทำไมติ๊กออกก็ยังส่งค่าเดิมไปอัพเดต

โค๊ด:
    if($(this).attr('checked'))
    {
        $.get("testdata.php", { checked: '1_A', msgId: $(this).attr('value') } );
    }
    else
    {
        $.get("testdata.php", { checked: '1_D', msgId: $(this).attr('value') } );
    }

เพราะคำสั่ง else ไงครับ ถึง checkbox ไม่ถูกเช็ค มันก็ยังให้ส่งค่าไปอัพเดต ไม่ว่า checkbox ตัวนี้จะถูกติ๊กหรือไม่ถูกติ๊ก ค่าใน checkbox ก็จะถูกส่งไปอยู่ดี เพียงแต่เปลี่ยนจากสถานะ 1_A เป็น 1_D เท่านั้นเอง


สรุปตามความต้องการที่ผมเข้าใจถ้าจะแก้ไขก็ต้องปรับเป็น
 
โค๊ด:
    if($(this).attr('checked'))
    {
        var status_update = 'A';
    }
    else
    {
        var status_update = 'D';
    }

    $.get("testdata.php", { checked: status_update, msgId: $(this).attr('value') } );

ค่า checked จะเท่ากับ A หรือ D ตามสถานะการติ๊กของ checkbox
ค่า msgId จะเท่ากับ value ของ checkbox นั่นก็คือ ID ของข้อมูลตามที่แนะนำในเรื่องของการส่งค่าไอดี

จากนั้นก็รับค่า checked และ msgId ไปอัพเดต ซึ่งก็มีทั้ง สถานะและไอดี น่าจะพอกับความต้องการที่ระบุมาล่ะ หากผิดพลาดตรงไหนก็ขออภัยด้วยครับ พิมพ์สดไม่ได้เทส
บันทึกการเข้า

อย่าเชื่อผมมาก ผมมันมั่ว.....ฮ่าๆ

ฝาก Like แฟนเพจหน่อยครับ
https://www.facebook.com/devsignup

ข่าวสารวงการเกมส์ ทริปทริคต่างๆ เกมส์แจกฟรี
https://www.wecanplay.in.th/
JumDaiDee
สมุนแก๊งเสียว
*

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

กระทู้: 566



ดูรายละเอียด
« ตอบ #6 เมื่อ: 01 กันยายน 2014, 20:58:09 »

ขอขอบพระคุณ พี่ zankumuro มากครับ

ให้ข้อมูลจัดเจน อธิบายทำให้ผมจนเข้าใจ
หายากมากครับ ที่จะมีคน ให้ความรู้และยอมเสียสละเวลาอธิบายจัดชันแบบนี้
ผมขอให้พี่ zankumuro ประสบความสำเร็จในหน้าที่การงานนะครับ

ขอบพระคุณมากจริงๆ ครับ เพราะอยากได้มาหลายเดือนละครับ

ทำได้แต่เพียง
<input type="radio" name="ss" value="1_a">
<input type="radio" name="ss" value="2_d">

และผมก็กำลังพัฒนา และพยายาม ที่จะไม่ใช้ปุ๋ม submit
เพราะทำแบบนี้ มันมี 2 ปุ่ม ผมเลยคิดว่า ถ่ามีปุ๋มเดียวน่าจะดีกว่า
+1 ให้พี่ทุกคน สำหรับน้ำใจและคำแนะนำต่างๆ ขอบพระคุณครับผม

 wanwan020 wanwan020
« แก้ไขครั้งสุดท้าย: 01 กันยายน 2014, 21:00:11 โดย JumDaiDee » บันทึกการเข้า

สินค้าออนไลน์ https://www.shoppook.com/product | โปรแกรมออนไลน์ : https://appnon.com
หน้า: [1]   ขึ้นบน
พิมพ์