Z tego co się orientuję, w większości aplikacji powinna być podana dokładna ścieżka do skryptu, a Ty dałeś tylko:
"http://localhost/"
PS. co to jest?
$arr = array('efekt'=> 'zxc');
Przecież to nie są dane z formularza.
Aha, zamiast alert używaj console.log , jest o wiele wygodniejsza, możesz badać obiekty, tablice itd.
JS wygląda dobrze moim zdaniem, nie jestem pewien co do PHP.
EDIT: dobra, rozumiem po co ten kod PHP wyżej - dla testu. OK, a więc...
1) zmień
na
<input type="hidden" name="send_form" value="" /> <input type="submit" value="wyslij" / >
jeśli nie zadziała, to:
2) Sprawdź PHP, tzn. umieść w skrypcie jedynie:
$arr = array('efekt'=> 'zxc');
Potem dla pewności odpal najpierw skrypt bezpośrednio przez przeglądarkę.
jeśli dalej nie będzie działać, to:
3) zamień
alert(data.efekt);
na
console.log(data);
I zobacz, jakie dane Ci wyrzuca (oczywiście w konsoli, możesz zainstalować Firebug albo użyć wewnętrznej konsoli dostępnej w chyba każdej nowej przeglądarce)
4) Chociaż zapis ten
$('form').bind('submit', function()
jest prawidłowy, ja używałem:
$('form').submit(function()
5) Sprawdź, czy na pewno masz lub dobrze zainkludowałeś bibliotekę jQuery