0

我是一名 PHP 初学者,正在尝试编写适用于 HTML 和 MySql 的 PHP 类。我面临以下问题,我创建了一个名为 DatabaseManager 的类,其中包含函数 get_value。这个函数只是返回一个值。在另一个文件中,我使用 java 脚本在单击按钮时调用此函数。但是这两个文件之间的链接似乎不起作用....有人可以帮我吗?谢谢你。

这是我的包含 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

像这样

在 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

这里有很多事情你做错了。

  1. 您不需要第一个示例中的 html 代码。
  2. 你关闭php错误/php>应该会产生错误,应该是?>
  3. 当您实例化 DatabaseManager 类时,您省略了括号,这意味着构造函数将永远不会被调用,这也会产生错误。
  4. 您可能正在尝试在 javascript 中使用 alert ,在这种情况下您没有这样做。

它应该看起来像这样:

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

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

}

?>

在您的 html(仍然是 php,但包含 html-markup)文件中:

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

也可能是您认为在调用 JS 函数 connect() 之前不会执行 javascript 函数内部的 php 代码,但事实并非如此。PHP代码在服务器上执行,因此当用户请求该网页时将被调用,另一方面,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 回答
0

一些东西:

  1. DatabaseManager.php删除所有 HTML 。您将文件包含在其他地方,您不需要或不想要重复的 HTML 标记。

  2. 删除@MySQL 部分中的 。这可以抑制您遇到的任何错误。

  3. 切换到PDOMySQLi。它们更安全(如果使用得当)

  4. 您的关闭 php 标记在数据库文件中是错误的。你有/php>它应该是?>

  5. 你的班级完全没有按原样做。

于 2012-08-30T18:05:40.867 回答
0

你做错了,在你的 JavaScript 函数 connect() 中输出一些东西:

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

因为 php 代码是在您的点击事件之外执行的。实际上,您不清楚您希望得到什么,但是您误解了基础知识。

[编辑澄清用户问题如何输出到屏幕]

于 2012-08-30T18:07:31.837 回答