Theo như PHP có liên quan (hay thực sự là một máy chủ web nói chung), một trang HTML không có gì phức tạp hơn một chuỗi lớn.
Tất cả công việc ưa thích bạn có thể làm với ngôn ngữ như PHP - đọc từ cơ sở dữ liệu và dịch vụ web và tất cả những thứ đó - mục tiêu cuối cùng là nguyên tắc cơ bản chính xác giống nhau: tạo ra một chuỗi HTML *.
Chuỗi HTML lớn của bạn không trở nên đặc biệt hơn thế cho đến khi được trình duyệt web tải. Khi một trình duyệt tải trang, thì tất cả các phép thuật khác sẽ xảy ra - bố cục, công cụ mô hình hộp, tạo DOM và nhiều thứ khác, bao gồm thực thi JavaScript.
Vì vậy, bạn không "gọi JavaScript từ PHP", bạn "bao gồm một lệnh gọi hàm JavaScript trong đầu ra của bạn".
Có nhiều cách để làm điều này, nhưng đây là một cặp vợ chồng.
Chỉ sử dụng PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Thoát khỏi chế độ php sang chế độ đầu ra trực tiếp:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Bạn không cần phải trả lại tên hàm hoặc bất cứ thứ gì tương tự. Trước hết, ngừng viết yêu cầu AJAX bằng tay. Bạn chỉ làm khó chính mình. Nhận jQuery hoặc một trong những khung công tác xuất sắc khác.
Thứ hai, hiểu rằng bạn đã thực thi mã javascript sau khi nhận được phản hồi từ cuộc gọi AJAX.
Đây là một ví dụ về những gì tôi nghĩ bạn đang làm với AJAX của 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
}
Bây giờ, nếu bạn đã chết khi gửi tên hàm từ PHP trở lại cuộc gọi AJAX, bạn cũng có thể làm điều đó.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Hoặc JSON hoặc XML, v.v.