从另一个文件调用php函数

时间:2012-08-30 17:59:26

标签: php mysql html

我是一名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

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

一些事情:

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

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

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

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

  5. 你的班级完全不做任何事情。

答案 2 :(得分:0)

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

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

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

[编辑以澄清用户询问如何向屏幕输出内容]

答案 3 :(得分:0)

这里有很多事情你错了。

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

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

    也可能是你认为javascript函数内部的php代码不会被执行,直到你调用JS函数connect(),事实并非如此。 PHP代码在服务器上执行,因此当用户请求该网页时,将调用PHP代码,另一方面,javascript是客户端,并将在用户浏览器中执行。我强烈建议您阅读php和JavaScript。

答案 4 :(得分:0)

我认为最简单的方法是使用require i另一个文件。

require('login.php');

function get_value()
{
return get_value;
}