JavaScript + php

[新着] Webテンプレートを仮オープンしました



0   名前: ガネーシャ : 2006/10/24(火) 05:30  ID:u3dG6xmA
JavaScript + PHP を用いてMySQLを使おうと考えています。
で、JavaScriptの中にPHPを埋め込もうと考えているのですがうまくいきません。

index.html
<html>
<head>
<title>index</title>
<script type="text/javascript" src="./func.php"></script>
</head>
<script type="text/javascript">
<!--
function check(pass){
if(pass.value =="pass1"){
test();
}
}
-->
</script>
<body>
<form>
<input type="text" name ="pass"><br>
<input type="submit" onClick="check(pass)" value="検索"><br>
</form>
</body>
</html>

とした上で
func.php
<?php
header("Content-type: application/x-javascript");
function test(){
echo "document.write(\"実験<br>\")";
}
?>

としています。JavaScriptでphpファイルを外部ファイルとして読み込んで、さらにphpファイルの中で指定されている関数を呼び出すことはできないのでしょうか?
また、JavaScriptからphpの関数を呼び出すことでMySQLにクエリを送ることはできますか?板違いかもしれませんが、この疑問について教えてくださる方がいらっしゃいましたら返信よろしくお願いします

1   名前: ラブーフ : 2006/10/24(火) 05:30  ID:mGMjLPPf
こんばんは。
<?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で処理するというのは、どこでも見かけます。

一覧へ戻る