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 回答