はじめまして。PHPの勉強を始めたばかりの者です。

<?php 関数 ?>
で、関数はJavaScriptで書いてあります。
--関数--
<script language="JavaScript">
function 関数(){
a = 計算;
return a;
}
</script>
としているのですが、関数がないとか返値がないみたいなエラーメッセージが表示されます。
どなたか詳しい方、ぜひご指導願います。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 時間がたっていますが・・・.



 クライアントサイドで動作するJavaScriptとサーバサイドで動作するPHPは通信することが出来ません.

 PHPがprint()文を実行してJavaScriptを含む文書を書き出し,その結果がブラウザにわたってブラウザがJavaScriptを実行し始めるときには,すでにサーバ側でのPHPプログラムの実行は終了しています.JavaScriptの結果をサーバ側に返したい場合は,新たにPHPプログラムをHTTPで呼び出し,POSTかGETで値を渡す必要があります.

 一度読み込んだページをサーバ側のプログラムと通信しながらダイナミックに更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで提供していたと思いますが,PHPではこれに対応することは(おそらく)出来ないでしょう.
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

>一度読み込んだページをサーバ側のプログラムと通信しながらダイナミック
>に更新する技術はMicrosoftがVBScriptやJScriptとASPに対するオプションで>提供していたと思いますが,PHPではこれに対応することは(おそらく)出来>ないでしょう.

そうですか。多数の人々にご指導頂きありがとうございました。また、わからないことがありましたら質問させていただきます。

お礼日時:2002/02/11 07:15

>>phpはcgiと同じくサーバサイドの機能です。


>>JavaScriptはクライアントサイドの機能です。

>は、わかります。が、イベントを拾って(onClickなど)
>でのJavaScriptは可能ですよね?最初のほうにJavaScript
>をprint("");で囲んで走らせ、その返値をPHPで分岐の条
>件として使用をしたいんです。

分かっていないに一票。
分かっていないからその質問がでるんです。
もう一度、「サーバーサイド」、「クライアントサイド」という言葉を、考えてみてください。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。

いまいちなんですが、
「サーバーサイド」→「クライアントサイド_1」→「サーバーサイド」→「クライアントサイド_2」という風にはできませんか?
「クライアントサイド_1」で変数を取得し、「サーバーサイド」で分岐し結果は「クライアントサイド_2」へと表示する は可能ではないんですか?

お礼日時:2002/02/10 00:03

サーバサイドの話とクライアントサイドの話がごちゃまぜになっていますね。



phpはcgiと同じくサーバサイドの機能です。
JavaScriptはクライアントサイドの機能です。

<script>~</script>
内の関数はあくまでJavaScriptの機能なので、phpから見れは単なるTAGと同じです。
つまり、ブラウザに読み込まれて初めて動作するものです。従ってphpがHTMLを出力している間(クライアントにデータを返している間)の制御はサーバ側なのでJavaScript内の関数は動作できません。

もう一度頭の中を整理して、サーバサイドなのかクライアントサイドなのかを区別しましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>phpはcgiと同じくサーバサイドの機能です。
>JavaScriptはクライアントサイドの機能です。

は、わかります。が、イベントを拾って(onClickなど)でのJavaScriptは可能ですよね?最初のほうにJavaScriptをprint("");で囲んで走らせ、その返値をPHPで分岐の条件として使用をしたいんです。

ご指導願います。

お礼日時:2002/02/07 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qの違い。

OpenPNE のインストールで色々調べており、以下のサイトで質問させて頂いております。
Fatal error: OpenPNE設置時のエラー に関して
http://oshiete1.goo.ne.jp/qa2511321.html

色々調べており、PHP に関する問題では思っていますが、正直な所、PHP を触るのが初めてですので、初心に戻って PHP から調べています。

サーバは、さくらインターネットを借りており、基本的に apache,php 等は標準で動作しています(インストール作業はしていません)。

PHP の動作確認をしようと、

<? phpinfo(); ?>

と書いたテキストファイルを作成してサーバにアップロードしました。
ファイル名は、test.php としました。

アップロード後、サーバにアクセス(test.php)すると白紙(真っ白)な状態です。ソースを確認すると<? phpinfo(); ?>が表示されます。ファイルは詠み込まれていると判断しました。

少し調べ所、
<? phpinfo(); ?>を<?php phpinfo(); ?>としたらどうでしょうかと言うアドバイスが有り、<?php phpinfo(); ?>と修正し、サーバにアップロードしら所、phpinfo のページを見ることが出来ました。

そこで質問なんですが<?php phpinfo(); ?>と<? phpinfo(); ?>は何が違うのでしょうか、サーバ側の設定でしょうか。
また、この違いが、OpenPNE のエラーと関係があるのでしゅか?

アドバイスを頂ければ幸いです。

OpenPNE のインストールで色々調べており、以下のサイトで質問させて頂いております。
Fatal error: OpenPNE設置時のエラー に関して
http://oshiete1.goo.ne.jp/qa2511321.html

色々調べており、PHP に関する問題では思っていますが、正直な所、PHP を触るのが初めてですので、初心に戻って PHP から調べています。

サーバは、さくらインターネットを借りており、基本的に apache,php 等は標準で動作しています(インストール作業はしていません)。

PHP の動作確認をしようと、

<? phpinfo(); ?>
...続きを読む

Aベストアンサー

サーバのphp.iniで設定されます
short_open_tag
という項目になります。
OpenPNEがshort open tag=offに対応しているかは知りませんが
.htaccessが使えればユーザ側で設定を変えることは出来ます。

参考URL:http://jp.php.net/manual/ja/ini.core.php#ini.short-open-tag

QPHP ループ 
  • の出力方法

    <?php


    $input_01 = file('list/001.txt');

    echo '<ul>'."\n";

    foreach( $input_01 as $value ){
    $num++;
    echo "\t".'<li><a href="' .$value. '"><img src="' .$num. '.jpg" alt="" /></a></li>'."\n";
    }

    echo '</ul>'."\n";

    /*
    1. list/001.txtにはURLが多数入っていると仮定します。上記の構文ですと、<ul>~</ul>の中に全てのURLが出力されます。
      例えばこれを以下のように5つずつ順にURLを出力、同時に00001~00005.jpgとなるよう出力するには、どうのような方法が、 軽く、スマートな方法のでしょうか?

    <ul>
    <li>~</li>
    <li>~</li>
    <li>~</li>
    <li>~</li>
    <li>~</li>
    </ul>

    2. echo '<ul>'."\n"; のように、シングル、ダブルクォートを同時に使用する事は、変でしょうか?

    色々検索して試行錯誤しましたが、フリーズしてしまいました。ご回答よろしくお願いいたします。
    */

    <?php


    $input_01 = file('list/001.txt');

    echo '<ul>'."\n";

    foreach( $input_01 as $value ){
    $num++;
    echo "\t".'<li><a href="' .$value. '"><img src="' .$num. '.jpg" alt="" /></a></li>'."\n";
    }

    echo '</ul>'."\n";

    /*
    1. list/001.txtにはURLが多数入っていると仮定します。上記の構文ですと、<ul>~</ul>の中に全てのURLが出力されます。
      例えばこれを以下のように5つずつ順にURLを出力、同時に00001~00005.jpgとなるよう出力するには、どうのような方法が、 軽く、スマートな方法ので...続きを読む

    Aベストアンサー

    簡単に書いてみました。参考までに。
    インデントは全角スペースになっています。

    <?php
     $list = file('list.txt');
     $count = 1;

     while($a = array_splice($list, 0, 5)){
      echo "<ul>\n";
      foreach($a as $v){
       printf("<li><a href=\"%s\"><img src=\"%05d.jpg\"/></a></li>\n", chop($v, "\n"), $count);
       $count++;
      }
      echo "</ul>\n";
     }
    ?>

    参考URL:http://www.php.net/manual/ja/function.array-splice.php

    Q

    PHP5(ZendFramework),テンプレートエンジンSmarty,Javascript(prototype.jsなどを使用)で記述されているソースコードの解析をしています。
    コード中にリンク先で、下記のように指定されている箇所がありましたが、この中の # は何を意味するのでしょうか?

    <a href = "192.168.1.1/index.php#cc&a=10">

    久しぶりにWEB関連の開発に携わると、一昔前とは大変かわっていてソースコードを追うのも大変です。どうかよろしくお願いいたします

    Aベストアンサー

    #cc というのは、index.phpの出力に<a name="cc">という部分が含まれるはずで、ブラウザがその部分を画面の最上行に位置づけます。

    &a=10は。。。?
    index.php?cc&a=10 とか index.php#cc?a=10 とかでないとするとわかりません。

    Qprint "{$data[$i][$j]}";の $dataと「直接関係」がある

    <!DOCTYPE html>
    <html>
    <head>
    <title>P185 Sample6-15▸ 多次元配列</title>
    </head>
    <body>

    <?php

    $data[0][0] = "東京";
    $data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
    $data[0][2] = 25;
    $data[1][0] = "名古屋";
    $data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
    $data[1][2] = 21;
    $data[2][0] = "大阪";
    $data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
    $data[2][2] = 20;
    $data[3][0] = "京都";
    $data[3][1] = 26;//$data[3][●]に京都のデータを格納します。
    $data[3][2] = 19;
    $data[4][0] = "福岡";
    $data[4][1] = 27;//$data[4][●]に福岡のデータを格納します。
    $data[4][2] = 22;

    ?>

    <table border="2">
    <tr bgcolor="#AAAAAA">
    <th>都市名</th>
    <th>最高気温</th>
    <th>最低気温</th>
    </tr>

    <?php

    for($i=0; $i<count($data); $i++){
    print "<tr>";
    for($j=0; $j<count($data[0]); $j++){
    print "<td>{$data[$i][$j]}</td>";//配列の要素を出力する。
    }
    print "</tr>\n";
    }

    ?>

    </table>

    </body>
    </html>
    以上ですが・・・だんだん難しくなってきました!
     さて
      print "<td>{$data[$i][$j]}</td>";の $dataと「直接関係」があるところは
     1) for($j=0; $j<count($data[0]); $j++){  
     2)$data[0][0] = "東京";~$data[4][2] = 22;
      の1)2)のどちらと「直接関係」があるのでしょうか?
     以上よろしくお願いいたします。

    <!DOCTYPE html>
    <html>
    <head>
    <title>P185 Sample6-15▸ 多次元配列</title>
    </head>
    <body>

    <?php

    $data[0][0] = "東京";
    $data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
    $data[0][2] = 25;
    $data[1][0] = "名古屋";
    $data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
    $data[1][2] = 21;
    $data[2][0] = "大阪";
    $data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
    $data[2][2] = 20;
    $data[3][0] = "京都";
    $data[3][1] = 26;//$data[3][●]に京都の...続きを読む

    Aベストアンサー

    > の1)2)のどちらと「直接関係」があるのでしょうか?

    No.1さんと同じく質問の意味が理解できません。
    わかり易く補足いただいた方が良いかと思います。



    ”の1)2)のどちらと「関係」があるのでしょうか?” というご質問であれば

    ”どちらとも関係あります” という回答になります。

    Q・コード中のの下の行にの行を追加する。!?

    php.ini変更で
     参考書には
     ・php.iniの中の「default_charset="UTF-8"」を有効にする・・はすぐにわかりました。
     次に
     ・コード中の<head>の下の行に<meta charset="UTF-8"/>の行を追加する。
      とありまして、とりあえず変更しようと試みましたがphi.iniは行が約2000行弱ありまして
     追加する場所がわかりませんので教えていただけないでしょうか?
    php.iniの中身を以下のアドレスから公開しております。
    http://homepage3.nifty.com/mtaiyo/php.htm
     以上よろしくお願いいたします。

    Aベストアンサー

    前者はPHPの文字エンコード、後者はHTML上の文字エンコードです。
    つまり、後者はPHPの設定で行うことではなく、各ページを作成する際のことです。

    PHP側は、どのような文字エンコードで処理するのかという設定。
    HTML側は、どのような文字エンコードで表示するのかという設定。


    人気Q&Aランキング

    おすすめ情報