A-AA+then

ถามครับ เรื่อง กรอกฟอร์มขณะพิมพ์ด้วย Ajax

1,184
การ กรอกฟอร์มขณะพิมพ์ด้วย Ajax

ถ้าเราจะเอา Textbox ให้กรอก มาก กว่า 1 อัน เพื่อเช็คข้อมูลให้ตรงกัน เช่น ถ้ากรอก id_card = 123456  และ member=hunter ถ้าตรงกันในฐานข้อมูล ให้แสดงข้อมูลออกมา  แต่ถ้าไม่ตรงก็ไม่แสดง  เหมือนกับตัวอย่าง

จะต้องเพิ่ม หรือแก้ไข ส่วนไหนบ้างครับ
ผมลองเปลี่ยน ตัวแปล ที่จาวาสคริปต์ เป็น 2 อย่างก็ไม่ได้ เปลี่ยน ฐานข้อมูลก็ไม่ออก จะต้อง ทำอย่างไร ครับ

แต่ถ้าเอา Textbox อันเดียว ได้ครับ
แต่เอามาก กว่า 1 ไม่มีข้อมูลใดๆแสดงเลย

ผมดูแล้วการทำงานมันอยู่ที่ code ด่านล่างนี่หรือป่าวครับ
   
req.send('find.php' ,  'identity_card='+ encodeURIComponent(input.value) , function(xhr) {
  result.innerHTML = ' ';
        var datas = xhr.responseText.toJSON();
  var prop, val;
  for (prop in datas[0]) {
   val = datas[0][prop];
   $E(prop).value = val;

ผมลองเพิ่ม

req.send('find.php' ,  'identity_card && fistname ='+ encodeURIComponent(input.value) , function(xhr) {
  result.innerHTML = ' ';
        var datas = xhr.responseText.toJSON();
  var prop, val;
  for (prop in datas[0]) {
   val = datas[0][prop];
   $E(prop).value = val;

ก็ไม่ได้ครับ มันไม่แสดงอะไรเลยแต่ก็ไม่
error นะครับ

3 ความคิดเห็น

ผมนึกแล้วเชียว ว่าต้องมีคำถามทำนองนี้ตามมา...

ก็ส่งไปโดย Ajax มากว่า 1 ตัว แล้วไปตรวจด้วย PHP สิครับ Ajax ทำหน้าที่ส่ง โดยไม่ต้องสนว่ามันจะส่งอะไร ค่าที่ได้ก็ไปจัดการหาข้อมูลด้วย PHP

ตัวอย่างมีมากมายบนเว็บเลยครับ

req.send('find.php', 'value1=' + value1 + '&value2=' + value2 +........

จะส่งไปกี่ค่าก็ได้ตามที่ต้องการ

value1, value2 จะมายังไงก็แล้วแต่ วิธีของเรา

ที่ find.php ก็รับ value1 value2 มา แล้ก็เอาไปประมวลผลตามวิธีที่ต้องการ

ต้องพยายามทำความเข้าใจกับ concept ของมันก่อนสิครับ ผมเคยบอกหลายหนแล้ว ว่า Ajax มันทำหน้าที่รับส่งข้อมลเท่านั้น เราจะรับอะไร หรือ ส่งอะไร ไม่มีความสำคัญกับมัน ปัญหามันจะอยู่ที่ เราต้องจัดการหาข้อมูลที่ต้องการ เพื่อส่งไป และ จัดการกับข้อมูลที่รับมาเท่านั้น

ข้อมูลที่จะส่งไปหามาจากไหน ? มันก็คือข้อมูลที่จำเป็นสำหรับการให้ได้มาซึ่งข้อมูลที่ต้องการ ซึ่งสามารถได้มาจากหลากหลายวิธี แล้วแต่ความถนัดหรือวิธีที่รู้จัก

เอาไปทำอย่างไรต่อ ? อันนี้ใครจะบอกได้ ต้องศึกษา Ajax ให้เข้าใจเอง มันทำหน้าที่แค่ส่งเท่านั้น หน้า PHP ที่รับจะรับค่ามาเหมือนกับการรับผานฟอร์ม ใช้ฟอร์มเป็นป่าว ถ้าไม่เป็นไปศึกษาก่อน เอาค่าที่ส่งมาไปประมวลผลตามต้องการ ปัญหาจะอยู่ที่การส่งค่ากลับ ต้องเลือกวิธีการส่งกลับ เป็น Text JSON หรือ XML หาอ่านได้ในบทความ

จะแสดงผลลัพท์อย่างไร ? ค่าที่ตอบกลับมาจาก Server จะเป็น Javascript ดังนั้นเราต้องรู้คำสั่งของ Javascript ที่จะทำให้ input แต่ละตัว หรือ อะไรก็ตาม แสดงผลตามต้องการ ให้เรานำค่าต่างๆที่ส่งกลับมา ไปแปลงเป็นสิ่งที่เราต้องการ แล้วจัดการแสดงผลให้ถูกต้อง

ทั้งหมดทั้งปวงนี่ต้องอาศัยความเข้าใจการทำงานของมันเป็นหลัก เพราะวิธีการประยุกต์ใช้มันมีหลากหลายวิธี ผมไม่สามารถตอบได้ทุกวิธี คงเป็นการยาวเกินไปหากผมจะต้องออกแบบการทดลองเพื่อให้ครอบคลุมทุกลักษณะ เนื่องจากตัวอย่างอาจจะใหญ่จนทำความเข้าใจยาก และเสียเวลามากไป

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

เขียนซะยาวเชียว.....
1

ครับอาจารย์ 

2

อ้างจากคำถามการ กรอกฟอร์มขณะพิมพ์ด้วย Ajax

req.send('find.php' ,  'identity_card && fistname ='+ encodeURIComponent(input.value) ,



เพราะฉะนั้นควรเป็น

req.send('find.php' ,  'identity_card='+input1.value+'&fistname='+encodeURIComponent(input2.value)  , ...
3
^