Đây là một giải pháp thay thế với AJAX nhưng không có jQuery, chỉ là JavaScript thông thường:
Thêm điều này vào trang php đầu tiên / chính, nơi bạn muốn gọi hành động từ đó, nhưng thay đổi nó từ một a
thẻ tiềm năng (siêu liên kết) thành một button
phần tử, để nó không bị bất kỳ bot hoặc ứng dụng độc hại nào (hoặc bất kỳ thứ gì) nhấp vào.
<head>
<script>
// function invoking ajax with pure javascript, no jquery required.
function myFunction(value_myfunction) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("results").innerHTML += this.responseText;
// note '+=', adds result to the existing paragraph, remove the '+' to replace.
}
};
xmlhttp.open("GET", "ajax-php-page.php?sendValue=" + value_myfunction, true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php $sendingValue = "thevalue"; // value to send to ajax php page. ?>
<!-- using button instead of hyperlink (a) -->
<button type="button" onclick="value_myfunction('<?php echo $sendingValue; ?>');">Click to send value</button>
<h4>Responses from ajax-php-page.php:</h4>
<p id="results"></p> <!-- the ajax javascript enters returned GET values here -->
</body>
Khi button
được nhấp vào, hãy onclick
sử dụng hàm javascript của head để gửi$sendingValue
qua ajax đến một trang php khác, giống như nhiều ví dụ trước trang này. Trang kia ajax-php-page.php
, kiểm tra giá trị GET và trả về print_r
:
<?php
$incoming = $_GET['sendValue'];
if( isset( $incoming ) ) {
print_r("ajax-php-page.php recieved this: " . "$incoming" . "<br>");
} else {
print_r("The request didn´t pass correctly through the GET...");
}
?>
Phản hồi từ print_r
sau đó được trả lại và hiển thị với
document.getElementById("results").innerHTML += this.responseText;
Các +=
populates và thêm vào các yếu tố html hiện có, loại bỏ các +
chỉ cập nhật và thay thế các nội dung hiện có của html p
yếu tố"results"
.