0

私は PHP の初心者で、HTML と MySql で動作する PHP クラスを作成しようとしています。次の問題に直面しています。関数 get_value を含む DatabaseManager というクラスを作成しました。この関数は単に値を返します。別のファイルでは、Java スクリプトを使用してボタン クリックでこの関数を呼び出しています。しかし、2 つのファイル間でリンクが機能していないようです....誰か助けてくれませんか? ありがとうございました。

これは、PHP クラスを含む私のファイルです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>

<body>

<?php

class DatabaseManager {

private $value=1;


    public function get_value ()
    {   
    return value;
    }


}

/php>
</body>
</html>

そして、これを呼び出す他のファイルがあります。

<html>
<head>
<?php include("DatabaseManager.php"); ?>

<script type="text/javascript">

function connect()
{

<?php

$database_manager= new DatabaseManager;
echo "the value is" . $database_manager->get_value();

?>
}

</script>
</head>

<body>

<input type="button" value="Search " onclick="connect()">


</body>
</html>

関数 get_value を含むファイルの名前は、DatabaseManager.php です。

4

5 に答える 5

1

DO このように

Databasemanager.php 内

<?php
    class DatabaseManager {    
    private $value = 1;

       public function get_value() {    
            return $this->value;
        }    
    }

    ?>

別の PHP ファイルで

<html>
<head>
<?php include("Databasemanager.php"); ?>

<script type="text/javascript">

function connect()
{
<?php
$database_manager= new DatabaseManager;
echo "the value is" . $database_manager->get_value();
?>
}

</script>
</head>

<body>

<input type="button" value="Search " onclick="connect()"> 

</body>
</html>
于 2012-08-30T18:26:04.313 に答える
0

JavaScript 関数 connect() make this で何かを出力するには、間違った方法で行います。

     function connect() {
        alert("
     <?php    
           $database_manager= new DatabaseManager;
            echo "the value is" . $database_manager->get_value();     
       ?>
        ");
    }

PHPコードはクリックイベントとは別に実行されるためです。実際には何を取得したいのかは不明ですが、基本を誤解しています。

[何かを画面に出力する方法に関するユーザーの質問を明確にするために編集]

于 2012-08-30T18:07:31.837 に答える
0

いくつかのこと:

  1. すべての HTMLをDatabaseManager.php削除します。ファイルを別の場所に含めているため、重複した HTML タグは必要ありません。

  2. @MySQL セクションの を削除します。これにより、発生しているエラーが抑制されます。

  3. PDOまたはMySQLiに切り替えます。それらはより安全です(適切に使用すれば)

  4. データベース ファイルの php の終了タグが間違っています。あなたは/php>それがあるべきです?>

  5. あなたのクラスはそのままでは何もしません。

于 2012-08-30T18:05:40.867 に答える
0

ここには、あなたが間違っていることが複数あります。

  1. 最初の例の html コードは必要ありません。
  2. PHP を間違って閉じると/php>、エラーが発生するはずです。?>
  3. DatabaseManager クラスをインスタンス化するときに、コンストラクターが呼び出されないことを意味する括弧を省略した場合、これもエラーを生成するはずです。
  4. あなたはおそらくJavaScriptでアラートを使用しようとしていますが、この場合は行っていません。

代わりに、次のようになります。

<?php
class DatabaseManager {
private $value = 1;

    function getValue() {
        return $this->value;
    }

}

?>

そして、あなたのhtml(まだphpですが、htmlマークアップを含むもの)ファイルで:

<html>
<head>
    <script type="text/javascript">
    function connect() {
        alert("
        <?php
            include "nameofDBManagerClassFile.php"
            $dbm = new DatabaseManager();
            echo "the value is " . $dbm->getValue();
        ?>
        ");
    }
</script>
</head>
<body>
</body>
</html>

また、JavaScript 関数の内部にある php コードは、JS 関数 connect() を呼び出すまで実行されないと考えている可能性もありますが、そうではありません。PHPコードはサーバー上で実行されるため、ユーザーがそのWebページをリクエストすると呼び出されます.一方、JavaScriptはクライアント側であり、ユーザーのブラウザで実行されます. PHP と JavaScript の両方を読むことを強くお勧めします。

于 2012-08-30T18:14:31.233 に答える
0

最も簡単な方法は、require i 別のファイルを使用することだと思います。

require('login.php');

function get_value()
{
return get_value;
}
于 2014-09-22T16:42:00.703 に答える