Это не работает, потому что при первой загрузке страницы $ _POST ['name'] не определено. Ваш код javascript не вызывает отправку (= перезагрузка для отправки данных). $ _POST ['name'] никогда не устанавливается, потому что он не будет обновляться на лету. Для этого создайте отдельный файл php, который обрабатывает только данные POST из вашего javascript и возвращает значение.
/* call post.php and add console.log to track data */
$("#button").click(function(){
$.post("post.php",
{
name: "Donald Duck",
city: "Duckburg"
},
function(data, status){
$("#hey").append(status);
console.log(data);
});
});
<?php
// post.php
if($_SERVER['REQUEST_METHOD'] == "POST") {
echo $_POST['name'];
}
Это, конечно, очень просто c. Для эффективной коммуникации вы должны изучить форматирование данных, например, в JSON.