class
a {
public function
a() {
И что в итоге будет? Не дважды ли получите значение?
Если вы выполняли пример, в котором нет Ajax, что в прочем не играет роли, и он не выполнялся, то что-то вы колбасите свое, а что не знаю.
Вот все ваше практически, только имя файла класса изменено, а то не понять о чем речь, и имя класса и файл запроса имеют одно имя, и что это за пример, тот что работаете или нет. Немного сократил, в местах где клава глючила, но это тоже не важно.
Класс, лежит по тому же пути что и файл обработчик - в папке my.
class a {
public function f() {
print_r($_POST);
}
}
Файл обработчик и непосредственно html, то есть все в одном.
<?php
if($_POST) {
include 'class.php';
$c = new a();
$c->f();
exit;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<button id="submit">GO</button>
<script>
document.getElementById('submit').addEventListener('click', function() {
var xhr = new XMLHttpRequest();
xhr.open('POST', location);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onload = function() {
if(xhr.status == 200) alert(xhr.responseText);
}
xhr.send("d=1");
}, false);
</script>
</body>
</html>
И проблем никаких.