1

現在、JavaScript を使用してアラートを表示し、実行が成功したことを通知しますが、これはテスト目的のみです。PHPオブジェクト指向スタイルでそれを行うにはどうすればよいですか?

私はもう試した:

public $msg='May the force be with you.';
$this->msg = new msg();

...しかし、結果は白い空白のページでした。私が試したJavaScriptの作品はうまくいきます。以下は完全なコードです。

<?php
class database {
    public $mysql;
        private $db_host='localhost';
        private $db_username='admin';
        private $db_password='password';
        private $db_name='db';

    function __construct() {
        $this->mysql = new mysqli($this->db_host, $this->db_username, $this->db_password, $this->db_name) or die (mysql_error() ); {
            echo 
            "<script type='text/javascript'>
            alert ('The Force will be with you, always.');
            </script>";
        }
    }
    function __destruct() {
        $this->mysql->close();
    }
}
?>
4

3 に答える 3

3
  1. PHP はサーバー側です。つまり、ユーザーとは別のマシンで実行されます。

  2. Javascript はクライアント側です。つまり、ユーザーのマシン上で実行されます。

  3. サーバーは、ユーザーのマシン上の何も制御できません。

したがって、PHP からのアラート ボックスは使用できません。:)

クライアント側でのみ実行される Javascript に固執する必要があります。それ、またはプレーンテキストをドキュメント自体にエコーします。

参考までに、この関係は、「Javascript がサーバーと通信するにはどうすればよいか」(回答:ajax) や「スクリプトは別のコンピューターと通信できるか」(回答: はい、ただし、そうすべきではありません) など、他の興味深い質問をもたらします。

于 2012-12-06T05:44:07.993 に答える
3

このコードを試してください:

<?php
class database {
    public $mysql;
        private $db_host='localhost';
        private $db_username='admin';
        private $db_password='correcthorsebatterystaple';
        private $db_name='projekt';

    function __construct() {
        $this->mysql = new mysqli($this->db_host, $this->db_username, $this->db_password, $this->db_name) or die (mysql_error() );
    }
   function pri()
    {
            echo 
            "<script type='text/javascript'>
            alert ('The Force will be with you, always.');
            </script>";
        }
    function __destruct() {
        $this->mysql->close();
    }
}

$msg=new database();
$msg->pri();
?>
于 2012-12-06T05:54:16.773 に答える
1

PHP では、print_r()任意の変数 (またはvar_dump()) に対して、オブジェクトや配列などの内容を表示できます。

これを行うと、コンテンツがページ ソースに直接ダンプされます (ただし、ブラウザーのポップアップとしてはダンプされません)。

于 2012-12-06T05:47:20.987 に答える