สอบถามการเอา Ajax 2 function มารวมกันค่ะ HomeForumสอบถามการเอา Ajax 2 function มารวมกันค่ะ pz.yunho@msn.com สมมติว่า เราจะรวมเอา Ajax ที่แยก function การทำงานกันมารวมกัน จะทำได้ไหมคะ พอดีว่าหนุพยายามจะรวมเอาการเลือกวันที่เพื่อจะเลือกช่วงข้อมูลมารวมกับการเลือก chkbox ว่าอยากดูดาต้าไหนบ้างน่ะค่ะ แต่เหมือนพอทำแล้วมันแยกการทำงานกัน กดวันที่ ก็ออกมาแค่วันที่ พอกดเชคบอกซ์ ก็ไม่เอาค่าของวันที่มาใช้เลย ขอบคุณค่ะ กรกฎ วิริยะ งงกับคำถาม ว่แยกฟังก็ชั่นยังไง... ถ้าหมายถึง ว่ามีตัวเลือกที่ต้องส่งไป มากว่า 1 ค่า ที่จำเป็นต่อการ query ก็ต้องส่งทั้ง 2 ค่าไปพร้อมกันครับ เสร็จแล้วไปจัดการ query ที่ปลายทั้งแล้วค่อยส่งกลับ เช่น มี input 2 ตัว คือ username กับ password ถ้าเรากดเพื่อส่งไปเพียงค่าเดียว คือ username หรือ password เราก็จะ login ไม่ได้ เราก็จำเป็นต้องส่งทั้ง username และ password ไปด้วยกัน ถึงจะตรวจสอบการ login ได้ เช่น var q = 'username=' + document.getElementById('username').value + '&password=' + document.getElementById('password').value; pz.yunho@msn.com แล้วให้สองอันนี้ส่งไปฟังก์ชันอันเดียวกันหรอคะ คืออันนึงเป็นปุ่ม button อีกอันเป็น checkbox น่ะค่ะ คือเพื่อนหนูทำส่วนของใช้วันที่ในการคิวรี่ดาต้าออกมาแล้วต้องกดปุ่ม button ถึงจะส่งไปยังส่วนของเอแจกซ์ และหนูทำส่วนของการใช้เชคบอกซ์ในการเลือกดูชนิดของดาต้าที่จะเอามาเปรียบเทียบ เลยงงๆ ว่าจะส่ง input ไปพร้อมๆ กันอย่างไรดีน่ะค่ะ กรกฎ วิริยะ ตอบตรงๆก็คือไม่รู้ว่า จุดประสงค์หรือความต้องการอะไร ซึ่งคำตอบก็ได้แต่เดาเอาครับ ประเด็นก็คือ สิ่งที่ต้อง query ต้องการข้อมูลอะไรบ้างถึงจะ query ได้ ก็ให้อ่านข้อมูลที่จำเป็นต้องใช้ทั้งหมดด้วย Javascript แล้วส่งไป query ด้วย Ajax ซึงไม่ได้หมายความว่า ข้อมูลที่ต้องส่งจะอยู่ที่ไหน หรืออยู่ใน input ชนิดอะไร ถ้า query ต้องการมันก็จำเป็นที่จะต้องหาเพื่องส่งให้มันครับ ดังนั้นคำตอบของคำถามด้านบนคือใช่ ยกตัวอย่างจากคำตอบก่อนหน้า คือการ login จำเป็นต้องใช้ทั้ง username และ password ในการตรวจสอบ ก็จำเป็นต้องอ่านและส่งไปครับ ปล. อาจเป็น input textarea checkbox select หรืออะไรก็ได้ทั้งนั้น หรือแม้แต่ span หรือ div ก็ยังใช้เป็นแหล่งข้อมูลที่ต้องส่งไปได้ pz.yunho@msn.com ถ้าส่ง event ไปพร้อมกับ ค่า parameter สามารถทำได้ไหมคะ กรกฎ วิริยะ อ้างอิงจาก ความคิดเห็น #4ถ้าส่ง event ไปพร้อมกับ ค่า parameter สามารถทำได้ไหมคะ pz.yunho@msn.com อย่างเวลาส่ง $G(item).addEvent('click', doCheckClick) ไปน่ะค่ะ ถ้าจะส่งอีก parameter อีกตัวนึงไปพร้อมๆ กันต้องทำยังไงคะ กรกฎ วิริยะ อ้างอิงจาก ความคิดเห็น #6อย่างเวลาส่ง $G(item).addEvent('click', doCheckClick) ไปน่ะค่ะ ถ้าจะส่งอีก parameter อีกตัวนึงไปพร้อมๆ กันต้องทำยังไงคะ ก็ยังไม่เข้าใจคำถามอยู่ดี ถ้าจะส่ง parameter มากกว่า 1 ตัว ก็ใช้วิธีอ่าน parameter ที่ต้องการแล้วส่งไปสิครับ ยกตัวอย่างเช่นการส่ง username และ password นั่นแหละครับ var doCheckClick = function(){ var q = 'v1=' + $E('input1').value; q += '&v2=' + $E('input2').value; -------- new GAjax.send('path/to/file.php', q, function(xhr){ // debug alert(xhr.responseText); --------- }); } $G(item).addEvent('click', doCheckClick); ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
ถ้าหมายถึง ว่ามีตัวเลือกที่ต้องส่งไป มากว่า 1 ค่า ที่จำเป็นต่อการ query ก็ต้องส่งทั้ง 2 ค่าไปพร้อมกันครับ เสร็จแล้วไปจัดการ query ที่ปลายทั้งแล้วค่อยส่งกลับ เช่น
มี input 2 ตัว คือ username กับ password ถ้าเรากดเพื่อส่งไปเพียงค่าเดียว คือ username หรือ password เราก็จะ login ไม่ได้ เราก็จำเป็นต้องส่งทั้ง username และ password ไปด้วยกัน ถึงจะตรวจสอบการ login ได้ เช่น
var q = 'username=' + document.getElementById('username').value + '&password=' + document.getElementById('password').value;
คืออันนึงเป็นปุ่ม button อีกอันเป็น checkbox น่ะค่ะ คือเพื่อนหนูทำส่วนของใช้วันที่ในการคิวรี่ดาต้าออกมาแล้วต้องกดปุ่ม button ถึงจะส่งไปยังส่วนของเอแจกซ์ และหนูทำส่วนของการใช้เชคบอกซ์ในการเลือกดูชนิดของดาต้าที่จะเอามาเปรียบเทียบ เลยงงๆ ว่าจะส่ง input ไปพร้อมๆ กันอย่างไรดีน่ะค่ะ
ประเด็นก็คือ สิ่งที่ต้อง query ต้องการข้อมูลอะไรบ้างถึงจะ query ได้ ก็ให้อ่านข้อมูลที่จำเป็นต้องใช้ทั้งหมดด้วย Javascript แล้วส่งไป query ด้วย Ajax ซึงไม่ได้หมายความว่า ข้อมูลที่ต้องส่งจะอยู่ที่ไหน หรืออยู่ใน input ชนิดอะไร ถ้า query ต้องการมันก็จำเป็นที่จะต้องหาเพื่องส่งให้มันครับ
ดังนั้นคำตอบของคำถามด้านบนคือใช่ ยกตัวอย่างจากคำตอบก่อนหน้า คือการ login จำเป็นต้องใช้ทั้ง username และ password ในการตรวจสอบ ก็จำเป็นต้องอ่านและส่งไปครับ
ปล. อาจเป็น input textarea checkbox select หรืออะไรก็ได้ทั้งนั้น หรือแม้แต่ span หรือ div ก็ยังใช้เป็นแหล่งข้อมูลที่ต้องส่งไปได้
ก็ยังไม่เข้าใจคำถามอยู่ดี
ถ้าจะส่ง parameter มากกว่า 1 ตัว ก็ใช้วิธีอ่าน parameter ที่ต้องการแล้วส่งไปสิครับ ยกตัวอย่างเช่นการส่ง username และ password นั่นแหละครับ
var q = 'v1=' + $E('input1').value;
q += '&v2=' + $E('input2').value;
--------
new GAjax.send('path/to/file.php', q, function(xhr){
// debug
alert(xhr.responseText);
---------
});
}
$G(item).addEvent('click', doCheckClick);