อาจารย์ค่ะ หนูอยากจะเรียกใช้ฟังก์ชันที่เขียนขึ้นเองในไฟล์ที่ ajax ใช้ในการประมวลผล 

หนูลองใช้ฟังก์ชัน include หรือ require ของ PHP มาใช้ก่อนเรียกใช้ฟังก์ที่เขียนขึ้นเอง 

มันได้ผลใน localhost เท่านั้นค่ะ แต่พออัพขึ้น server มันเรียกใช้งานฟังก์ชั่นที่เราเขียนเองไม่ได้

หนูลองเปลี่ยนชื่อฟังก์ชันให้เป็นอักษรตัวเล็กทั้งหมดแล้ว แต่มันก็ยังใช้งานไม่ได้ค่ะ

อาจารย์ช่วยตอบให้หนูหน่อยนะค่ะ
กรกฎ วิริยะ 19 Aug 2010 16:38
ไม่เคยจำเนอะ ว่าการถามคำถามต้องให้ข้อมูลที่เพียงพอต่อการตอบคำถาม



ถามคำถามสั้นๆ ไม่ให้ข้อมูลอะไรเลยกว่าจะได้คำตอบก็คงอีกหลายวัน
chula w. 20 Aug 2010 15:03
โค้ดตอนส่งค่า



function ajaxtest(bt){


var data=getFormData("frmTest");


data+="&bt="+bt;


var URL="ajaxtest.php";


ajaxLoad("post",URL,data,null,null);


}



โค้ดตอนส่งข้อมูลเวลาคลิก

<a href="#" onclick="ajaxTest('AAA');">ทดสอบ</a>



โค้ดประมวลผลข้อมูลและสั่งให้แสดงผลในไฟล์ ajaxtest.php




<?

function linkadmin(){


$js2 = <<<JS


var el = document.getElementById('insSchool');


el.style.display = 'block';


JS;


header("content-type: text/javascript; charset=tis-620");


$js2=iconv('utf-8','tis-620',$js2);


echo $js2;


}

 

$bt=trim($_POST['bt']);

 


$js = <<<JS


alert("$bt");


JS;



linkadmin();  //เรียกใช้ฟังก์ที่เขียนขึ้นเองในไฟล์เดียวกัน 

require('linkfunc.php');

clear_ins_school(); //เรียกใช้ฟังก์ชันที่เขียนขึ้นเองในไฟล์อื่น

 


header("content-type: text/javascript; charset=tis-620");


$js=iconv('utf-8','tis-620',$js);


echo $js;

?>




ไฟล์ที่เขียนฟังก์ชันขึ้นเอง linkfunc.php

function clear_ins_school(){


$js = <<<JS


var el = document.getElementById('frmInsSchool').reset();


JS;


header("content-type: text/javascript; charset=tis-620");


$js=iconv('utf-8','tis-620',$js);


echo $js;


}



การเรียกใช้ฟังก์ชันทั้งสองแบบ ไม่สามารถทำงานได้เวลารันบน server หนูลองเปลี่ยนจาก require เป็น include แล้วก็ไม่ได้ผลอาจารย์ช่วยตอบหน่อยนะค่ะ 



แขม่ว พุง 20 Aug 2010 15:13


ลองทดสอบดูยังครับ ตามนี้ก็ได้




  1. alert(data) ตอนก่อน AJAX ส่ง request ไปหา .php


  2. ไปตามหน้า .php ดูบน host ว่ามัน echo ออกมาเป็นอะไรแน่




อีกจุดที่ผมไม่แน่ใจเลยน่ะครับ

ว่าทาง host ที่ว่าเนี่ยเขาลง PHP อะไรไว้ให้

ผมเกรงว่าบางที PHP อาจเป็นรุ่นใหม่แล้วไม่ support โค้ดเก่าๆ



อย่างเครื่องผมเนี่ย PHP version ล่าสุดมันไม่ให้ใช้ <? ?> กัับ <?=?> ผมต้องเขียนเป็น <?php ?>

chula w. 20 Aug 2010 15:33
alert(data) แสดงผลได้แล้วค่ะ

แต่ถ้าเรียกใช้ฟังก์ชันที่เขียนขึ้นเองตอนรันบน server มันไม่สามารถใช้งานฟังก์ชันที่เขียนขึ้นเองได้

ไม่ทราบว่าปัญหามาจากอะไร
กรกฎ วิริยะ 20 Aug 2010 16:01
เราไม่สามารถใช้คำสั่ง Javascript ในหน้าที่ถูก Ajax เรียกได้ครับ (ใช้ได้แต่ Event)



ลองอ่านบทความเกี่ยวกับ [search]Ajax[/search] บนเว็บประกอบนะครับ