Oto alternatywa dla AJAX, ale bez jQuery, tylko zwykły JavaScript:
Dodaj to do pierwszej / głównej strony php, z której chcesz wywołać akcję, ale zmień ją z potencjalnego a
tagu (hiperłącza) na button
element, aby nie klikały go żadne boty ani złośliwe aplikacje (lub cokolwiek).
<head>
<script>
function myFunction(value_myfunction) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("results").innerHTML += this.responseText;
}
};
xmlhttp.open("GET", "ajax-php-page.php?sendValue=" + value_myfunction, true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php $sendingValue = "thevalue";
<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>
</body>
Kiedy button
zostanie kliknięty, onclick
używa funkcji javascript głowy do wysłania $sendingValue
przez AJAX do innej strony php, jak wiele przykładów wcześniejszych. Druga strona ajax-php-page.php
sprawdza wartość GET i wraca z 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...");
}
?>
Odpowiedź od print_r
jest następnie zwracana i wyświetlana za pomocą
document.getElementById("results").innerHTML += this.responseText;
W +=
zapełnia i dodaje do istniejących elementów HTML, usuwając +
tylko aktualizacje i zastępuje istniejące zawartość html p
elementu "results"
.