เท่าที่ PHP มีความกังวล (หรือจริงๆแล้วเว็บเซิร์ฟเวอร์โดยทั่วไป) หน้า HTML ไม่มีอะไรซับซ้อนกว่าสตริงขนาดใหญ่
งานแฟนซีทั้งหมดที่คุณสามารถทำได้กับภาษาเช่น PHP - การอ่านจากฐานข้อมูลและบริการบนเว็บและสิ่งสุดท้าย - เป้าหมายสุดท้ายคือหลักการพื้นฐานเดียวกันที่แน่นอน: สร้างสตริงของ HTML *
สตริง HTML ขนาดใหญ่ของคุณจะไม่กลายเป็นอะไรที่พิเศษไปกว่านั้นจนกว่ามันจะถูกโหลดโดยเว็บเบราว์เซอร์ เมื่อเบราว์เซอร์โหลดหน้าเว็บแล้วสิ่งมหัศจรรย์อื่น ๆ ก็เกิดขึ้นเช่นเลย์เอาต์สิ่งที่เป็นโมเดลของกล่องการสร้าง DOM และสิ่งอื่น ๆ อีกมากมายรวมถึงการใช้ JavaScript
ดังนั้นคุณไม่ "เรียก JavaScript จาก PHP" คุณ "รวมการเรียกใช้ฟังก์ชัน JavaScript ในผลลัพธ์ของคุณ"
มีหลายวิธีในการทำเช่นนี้ แต่ที่นี่เป็นคู่
ใช้เพียง PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
การหลบหนีจากโหมด php ไปยังโหมดเอาต์พุตโดยตรง:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
คุณไม่จำเป็นต้องส่งคืนชื่อฟังก์ชันหรืออะไรทำนองนั้น ก่อนอื่นให้หยุดเขียนคำขอ AJAX ด้วยมือ คุณแค่ทำให้ตัวเองยาก รับ jQuery หรือหนึ่งในกรอบงานที่ยอดเยี่ยมอื่น ๆ
ประการที่สองเข้าใจว่าคุณกำลังจะเรียกใช้โค้ดจาวาสคริปต์เมื่อได้รับคำตอบจากการโทร AJAX
นี่คือตัวอย่างของสิ่งที่ฉันคิดว่าคุณกำลังทำกับ AJAX ของ jQuery
$.get(
'wait.php',
{},
function(returnedData) {
document.getElementById("txt").innerHTML = returnedData;
// Ok, here's where you can call another function
someOtherFunctionYouWantToCall();
// But unless you really need to, you don't have to
// We're already in the middle of a function execution
// right here, so you might as well put your code here
},
'text'
);
function someOtherFunctionYouWantToCall() {
// stuff
}
ตอนนี้ถ้าคุณตั้งค่าการส่งชื่อฟังก์ชั่นจาก PHP กลับไปที่การโทร AJAX คุณก็สามารถทำได้เช่นกัน
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* หรือ JSON หรือ XML เป็นต้น