こんばんは。
<?php
header("Content-type: application/x-javascript");
function test(){
echo "document.write(\"実験<br>\")";
}
?>
って、PHPのfunction()とJavaScriptのそれとがごっちゃになってますね。
見かけは全く同じなので、慣れないと紛らわしいですが。PHPで定義したfunction test()はあくまでPHP側の関数なので、
それをJavaScriptで呼び出しても、当然ながら、JavaScript側は「そんなtest()なんて関数知らないよ」ってなります。
ここは、
<?php
echo ' // function自体を文字列として書き出す。
function test(){
document.write("実験<br>");
document.close(); // 一応
}
';
?>
で良いんじゃないでしょうか。PHPにとっては、function test()は単なる文字列でしかありません。ヘッダーは要りますかね?
>JavaScriptからphpの関数を呼び出すことでMySQLにクエリを送ることはできますか?
JavaScriptがクライアント側、PHPはサーバーサイドであることを再認識した上で、可能だと思いますよ。
JavaScriptでPOST送信を行い、サーバーに投げ、サーバー側ではPHPで処理するというのは、どこでも見かけます。