Вы не можете вызывать функцию PHP из JavaScript, даже из Ajax. Что делает Ajax, так это запрашивает данные, которые выводятся из файла PHP. Таким образом, вам нужно будет вызвать функцию в вашем name.php
, которая выдает результат - который вы затем можете распечатать на PHP.
Ajax будет извлекать только строку, напечатанную из PHP.
Также обратите внимание, что вам не нужно закрывать PHP, выполнив ?>
в конце файла, если только после этого не будет HTML или подобного.
На стороне сервера, вы будете делать что-то вроде этого
<?php
// Define the function
function greet($name) {
return "Hello $name";
}
// Call the function with the value sent from Ajax - this output is what Ajax fetches
echo greet($_POST['name']);
На стороне клиента вы бы сделали что-то вроде
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$("#button").on("click", function() {
$.ajax({
type: "POST",
url: "name.php",
data: { name: "John" }
}).done(data) {
alert("Data Saved: " + data);
});
});
</script>
<input type="button" id="button" value="Click me">
Тогда data
будет содержать всю строку, которая была напечатана из вашего PHP-файла. Если вы ожидаете массив, вам нужно преобразовать его в JSON.