A-AA+then

ดูให้หน่อยครับ ajax ครับ ขอบคุณครับ

1,121

<script type="text/javascript">
alert('x');
var obj=document.frm;

var doPage = function(xhr){
 alert('Y');
    document.getElementById("divPage").innerHTML= xhr.responseText;
 xhr.responseText.evalScript();
};

var chk_search = function(){
 if(obj.text.value.length==0){alert("กรุณากรอกสิ่งที่ต้องการค้นหา");obj.text.focus();return false;}
 obj.status.value="search";
 obj.submit();
 new GForm('frm','',true,'').onsubmit(doPage);
};
$G('search').addEvent('click', chk_search);
</script>

ผมลองใช้โค้ดนี้เขียน ไว้ในหน้า โดยที่ใช้ ajax เรียกมาใช้งานก่อนแล้ว  แล้วมันติดปัญหาตรงที่ มันไม่เข้าฟังชั่น doPage ครับ แต่ถ้าใช้ในหน้าแรกเลยก็จะได้ครับ ไม่รู้ว่าจะต้องแก้ไขตรงไหนบ้างครับ

ขอบคุณครับ

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

งงคำถาม แต่ถ้าผมเข้าใจคำถามเป็นแบบนี้นะคับ ถ้าใช้ ajax เรียกหน้าที่ search เข้ามาโดยที่มี javascript ติดอยู่ในหน้า
search ด้วย ก็คงไม่ทำงานหรอคับเพราะเมื่อเราเรียกหน้า search แบบ ajax มันจะมอง tag javascript เป็น text ธรรมดา
ต้องเอา javascript ไปไว้หน้าแรกนะคับ
1

xhr.responseText.evalScript();

ผมใช้คำสั่งนี้ เพื่อให้ javascript มันใช้งานได้แล้วอะครับ ตอน alert('x'); มันก็ alert ซึ่งแสดงว่า javascript ใช้งานได้ตามปกติครับ ขอบคุณครับ
2

อ้างจากคำตอบที่ #2xhr.responseText.evalScript();

ผมใช้คำสั่งนี้ เพื่อให้ javascript มันใช้งานได้แล้วอะครับ ตอน alert('x'); มันก็ alert ซึ่งแสดงว่า javascript ใช้งานได้ตามปกติครับ ขอบคุณครับ

ดูบทความเลยครับ มีเขียนไว้
3

ตรงคำสั่ง นี้มันไม่ทำงานอะครับ
new GForm('frm','',true,'').onsubmit(doPage);
แก้ยังไงดีครับ ขอบคุณครับ

4

แต่ถ้าใช้ jquery ก็แค่ $('#id').load('file.php');

อ้างจากคำตอบที่ #4

ตรงคำสั่ง นี้มันไม่ทำงานอะครับ
new GForm('frm','',true,'').onsubmit(doPage);
แก้ยังไงดีครับ ขอบคุณครับ



แต่อันนี้ไม่รู้จริงๆ นะคับต้องให้อาจารย์ผู้เขียน frame work มาตอบละคับ อิอิ
5

var chk_search = function(){
 if(obj.text.value.length==0){alert("กรุณากรอกสิ่งที่ต้องการค้นหา");obj.text.focus();return false;}
 obj.status.value="search";
 obj.submit();
 new GForm('frm','',true,'').onsubmit(doPage);
};

ตรงนี้อาจจะมีปัญหานะ ไม่รู้โครงสร้างของเว็บหรือของฟอร์ม เลยไม่สามารถตอบแบบตรงๆได้

ลอง

alert('z');
new GForm('frm','',true,'').onsubmit(doPage);

เพื่อตรวจว่ามันมาถึง GForm หรือไม่ ถ้ามี alert แสดงว่า ทุกอย่างถูกต้องแล้ว

frm เป็นอะไร ถ้าใส่ 'frm' จะต้องเป็น id ถ้าใส่ frm จะเป็น name กำหนดให้ถูก

ลองให้ doPage อยู่ที่ Javascript หลักครับ แล้วไปทดสอบ alert ใน doPage ดูว่ามันไปทำงานถึงในนั้นมั้ย

ถ้าไม่ได้ ลองส่งโค้ดให้ผมทาง email หรือ msn ดู แต่พยายามทดลองให้ถึงที่สุดก่อนนะครับ ถ้าเข้าใจหลักการมันได้มันจะใช้ได้ง่ายมากเลย
6

ตอนนี้มันติดปัญหา ตรงที่ ใช้ javascript submit แล้ว คำสั่งอันนี้
new GForm('frm','',true,'').onsubmit(doPage);
มันจะไม่ทำงานอะครับ ลองใช้ submit แบบปกติ ก็ทำงานปกตินะครับ
ต้องทำไง ถึงจะใช้ javascript submit ได้อะครับ

**ผมใช้คำสั่งนี้ในการ submit นะครับ frm.submit();

ขอบคุณครับ
7

ข้อมูลไม่เพียงพอ ที่จะตอบคำถามครับ.....

ผมไ่ม่รู้ว่าเขียนไว้อย่างไร รวมถึง ทดสอบก็ไม่ได้ด้วย ทำให้ไม่สามารถตอบคำถามได้ รวมถึงไม่รู้ว่าได้ตรวจสอบ ตามคำตอบที่ #6 แล้วหรือยัง บางครั้งก็เส่นผมบังภูเขาครับ ยกตัวอย่าง

ถ้าไม่มีรูปรอโหลดสำหรับฟอร์ม parameter ตัว ที่ 2 และ 3 ก็ไม่ต้องใส่ (แค่ผมแนะนำให้ใส่ เพราะมันจะช่วยให้เรารู้ว่ามันทำงานหรือไม่ได้) parameter ที่ 4 ก็เช่นกัน ถ้าไม่มีไม่ต้องใส่อะไรไปเลย

new GForm('form_id').onsubmit(doPage);

ส่วนการใช้ Javascript ในการ submit อาจมีข้อจำกัด ซึ่งผมไม่แน่ใจนัก แต่ผมไม่มีโค้ด เลยไม่ได้ทดสอบวิธีนี้ และดูเหมือนจะเคยเขียนบทความนี้ไว้แล้ว (แต่หาไม่เจอ 555+++)
8

9

ได้แล้วครับ ขอบคุณครับ สำหรับคำตอบ และบทความดีๆ

10

อ้างจากคำตอบที่ #10ได้แล้วครับ ขอบคุณครับ สำหรับคำตอบ และบทความดีๆ

ตกลงทำไง หรือแก้ไข ตรงไหน อธิบายไว้บ้างก้ดีนะ....
11

อ้างจากคำตอบที่ #9http://www.goragod.com/knowledge-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%94%E0%B8%B1%E0%B8%81%E0%B8%AD%E0%B8%B5%E0%B9%80%E0%B8%A7%E0%B8%99%E0%B8%95%E0%B9%8C%20onsubmit%20%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1%20%E0%B9%80%E0%B8%A1%E0%B8%B7%E0%B9%88%E0%B8%AD%20submit%20%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%20Javascript.html?search=submit%20javascript


ผมทำตามบทความนี้ครับ สร้างปุ่ม submit แล้ว hiddden ไว้ เมื่อคลิก button แล้วใช้ javascipt สั่งให้ คลิกปุ่ม submit
ซึ่งทำให้ คำสั่งนี้ทำงาน เมื่อ submit ครับ new GForm('frm','',true,'').onsubmit(doPage);

var doPage = function(xhr){
    document.getElementById("divPage").innerHTML= xhr.responseText;
 xhr.responseText.evalScript();
};

new GForm('frm','',true,'').onsubmit(doPage);

var checkform = function(){
var checkvar = frm;
var check = "";
  for (i = 0; i < checkvar.elements.length; i++) {
    if (frm.elements.checked){
      check = "Y";
      break;
    }
  }
  if (check==""){
    alert("กรุณาเลือก CheckBox");
    event.returnValue=false;
  }
  else
  {
   if(confirm('ยืนยันการลบข้อมูล'))
   {
   frm.status.value="del";
   frm.del.click();
   }
  }
};
$G('Submit3').addEvent('click', checkform);
 

12
^