PHPの中にJS使えるのでしょうか?

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



0   名前: つくし : 2004/05/24 16:29
PHPファイルの中にJavaScript使えるのでしょうか?

普通のHTMLファイルでしたら、うまく動くことを確認しました。
<HTML>
<HEAD>
.......... Java Script ..........
</HEAD>
<BODY>
</BODY>
</HTML>

しかし、PHPファイルになると、JavaScriptが実行されていません。
<?php
init();
............PHP作業.........
?>
<HTML>
<HEAD>
<?php作業 ?>
..........JavaScript............
</HEAD>
<BODY>
</BODY>
</HTML>

PHPとJavaScriptが同時に扱える方法はないでしょうか?
お願いします。

1   名前: Sinryow : 2004/05/26 23:31   [URL
普通は動くと思うのですが・・・。
ソースコードやOSやブラウザまで詳しく教えていただけませんか?

2   名前: つくし : 2004/05/28 10:30
PHPファイルは投稿フォームです。

それで、投稿を送信する際、エラーチェックを行おうとしています。
例えば、「お名前」は必ず記入しなければならないとか。

ソースコードは以下のとおりです。
===================================
<?php
require_once("html_disp.php");  //HTML タグをまとめたPHPファイル

$bbs_name = "My BBS";
disp_html_header($bbs_name); //html_disp.php内の関数(ヘッダ出力)

?>


<SCRIPT language="JavaScript">
<!--

/* フォームの内容をチェック */
function FormCheck() {
if (document.Enter_Form.name.value=="") {
window.alert("お名前を記入してください。");
return false;
}

if (document.Enter_Form.comments.value=="") {
window.alert("コメントを記入ください。");
return false;
}

return true;
}

// -->
</SCRIPT>

HTMLの続きは別レス(長すぎみたい・・)

3   名前: つくし : 2004/05/28 10:32
続きのHTMLコード:

</HEAD>
<BODY>
<p align="center"><strong><font size="4">投稿フォーム</font></strong></p>

<FORM ACTION="kakunin.php" METHOD="post" NAME="Enter_Form" onSubmit="return FormCheck()">
<TABLE BORDER="1" align="center" CELLPADDING=10 bordercolor="#CC99CC">
<TR WIDTH="30%">
<TD><SMALL>お名前</SMALL></TD>
<TD>
       <INPUT TYPE="text" NAME="title" SIZE=80></SMALL>
</TD>
  </TR>

  <TR>
<TD><SMALL>コメント</SMALL></TD>
<TD>
  <INPUT TYPE="textarea" NAME="comments" >
</TD>
</TR>
</TABLE>
<P align="center">
<INPUT TYPE="submit" NAME="confirm_button" VALUE="確認" >
<INPUT TYPE="reset" VALUE="リセット" onClick="ResetButton()">
</FORM>

<?php
print("<P>");
disp_html_footer(); // HTML フッタ出力
?>


html_disp_header($bbs_name)はヘッダの出力で、以下のようになっています。

function disp_html_header($title){
$html_string = <<<END_OF_HEADER
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=EUC-JP">
<STYLE type="text/css">
<!--
body,tr,td,th { font-size: 9pt }
a:hover { color: #FF0000 }
span { font-size: 18pt }
big { font-size: 12pt }
small { font-size: 9pt }
-->
</STYLE>
END_OF_HEADER;


よろしくお願いします。

4   名前: つくし : 2004/05/28 14:55
すみません・・
onClickを忘れました。
といっても、
<INPUT TYPE="submit" NAME="confirm_button" VALUE="確認" onClick="FormCheck(this)">
と書いてもチェックされてないです・・
FormCheck()としてもだめです・・
どこが問題なのかさっぱり分かりません・・(-_-;;;

5   名前: Sinryow : 2004/05/30 23:29   [URL
どうやらPHPの問題ではなく,ただのJavaScriptの問題のようです。

if (document.Enter_Form.name.value==""){
→if (document.Enter_Form.title.value==""){

<FORM ・・・ onSubmit="return FormCheck()">
→<FORM ・・・ onSubmit="FormCheck()">

<INPUT TYPE="submit" NAME="confirm_button" VALUE="確認" onClick="FormCheck(this)">
→<INPUT TYPE="submit" NAME="confirm_button" VALUE="確認">(元のままでよい)

<INPUT TYPE="reset" VALUE="リセット" onClick="ResetButton()">
→<INPUT TYPE="reset" VALUE="リセット">(onclickは不要,自動的にやってくれる)

<INPUT TYPE="textarea" NAME="comments" >
→<textarea NAME="comments"></textarea>

あとJavaScriptとは直接関係ないですが,

$html_string = <<<END_OF_HEADER
→print <<<END_OF_HEADER

といったところでしょうか。

6   名前: つくし : 2004/05/31 18:17
ごめんなさい。
私のタイプミスでした。
ソースコードはかなり長いので、一部のコピーペーストにミスがありました。

if (document.Enter_Form.name.value==""){
→if (document.Enter_Form.title.value==""){
============> もともと合ってたのでOK

<INPUT TYPE="textarea" NAME="comments" >
→<textarea NAME="comments"></textarea>
============>これもOK

問題となるのは、
<FORM ・・・ onSubmit="return FormCheck()">
→<FORM ・・・ onSubmit="FormCheck()">
ですが・・
なぜreturnは要らないですか?
一応すべての項目をチェックして、正しければtrueを返すので、
次のアクションFORM ACTION="kakunin.php"に飛びます。
エラーが生じた場合、falseを返すので、次のアクションに飛ばないです。(次のページに飛ばさないように)

にしても、returnがあっても、なくても同じですね・・・(-_-!!
もう一回見てみます。
もし解決方法わかったら、またよろしくお願いします。
こちらも考えますので、解決できましたら、書き込みます。

一覧へ戻る