从另一个文件调用php函数

从另一个文件调用php函数,php,mysql,html,Php,Mysql,Html,我是一名PHP初学者,试图编写使用HTML和MySql的PHP类。 我面临以下问题,, 我创建了一个名为DatabaseManager的类,其中包含函数get\u value。此函数只返回一个值。在另一个文件中,我使用java脚本通过单击按钮调用此函数。但是这两个文件之间的链接似乎不起作用……有人能帮我吗? 多谢各位 这是我的包含PHP类的文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww

我是一名PHP初学者,试图编写使用HTML和MySql的PHP类。 我面临以下问题,, 我创建了一个名为DatabaseManager的类,其中包含函数get\u 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>

无标题1
有几件事:

  • DatabaseManager.php
    中删除所有HTML。如果将该文件包含在其他位置,则不需要或不需要重复的HTML标记

  • 删除MySQL部分中的
    @
    。这将抑制您正在发生的任何错误

  • 切换到或。它们更安全(如果使用得当)

  • 数据库文件中的结束php标记错误。你有
    /php>
    它应该是
    ?>

  • 你们班什么也没做


  • 若要在JavaScript函数connect()中输出某些内容,请执行以下操作:

         function connect() {
            alert("
         <?php    
               $database_manager= new DatabaseManager;
                echo "the value is" . $database_manager->get_value();     
           ?>
            ");
        }
    
    函数连接(){
    警报(“
    ");
    }
    
    因为php代码是在点击事件之外执行的。 实际上,不清楚你想要得到什么,但你误解了基本原理


    [编辑以澄清用户对如何将内容输出到屏幕的疑问]

    这里有很多地方你都搞错了

  • 在第一个示例中,您不需要html代码
  • 关闭php错误
    /php>
    应该会生成错误,应该是
    ?>
  • 在实例化DatabaseManager类时,省略了括号,这意味着永远不会调用构造函数,这也会生成一个错误
  • 您可能正在尝试在javascript中使用alert,但在本例中您没有这样做
  • 它应该是这样的:

    <?php
    class DatabaseManager {
    private $value = 1;
    
        function getValue() {
            return $this->value;
        }
    
    }
    
    ?>
    
    
    
    在html(仍然是php,但包含html标记的)文件中:

    
    函数连接(){
    警报(“
    ");
    }
    
    也可能是您认为javascript函数中的php代码在调用JS函数connect()之前不会执行,事实并非如此。PHP代码在服务器上执行,因此当用户请求该网页时将被调用,而javascript则是客户端代码,将在用户浏览器中执行。我强烈建议您同时阅读php和JavaScript。

    请这样做

    在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>
    
    
    函数连接()
    {
    }
    
    我认为最简单的方法是使用另一个文件

    require('login.php');
    
    function get_value()
    {
    return get_value;
    }
    

    请改用
    mysqli\u
    PDO
    。请不要对新代码使用
    mysql\u*
    函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习,。包括文件将包括所有内容,因此你最终会得到所有内容。这将导致两组嵌套的
    etc
    tags只是一个旁注,当我看这篇文章时,你不需要在类中使用HTML…不要误会,但是你应该读一本很好的PHP简介书。这有很多问题。请注意,根据“纯”php文件中的第4点,完全跳过结束标记。除以零,我只想确保两个文件之间的链接正常工作。因此,我需要通过点击按钮在屏幕上显示成功的信息……你能给我举个例子吗?当我点击按钮时,我看不到那句话。你肯定看不到,因为没有调用JS函数将某些内容输出到你的屏幕…我将编辑我的答案,这样你就可以看到热点来提醒某些内容。除以零,我尝试做此提醒(“hi”);它工作得很好。但警惕(“”);无法与我一起使用。请将类databaseManager中的函数返工为
    公共函数get_value(){return$this->value;}
    我也这样做了,实际上,我注意到,当我在java脚本函数中嵌入任何php代码时,它都不起作用……我相信php服务器有问题……你知道什么是可能的吗?谢谢@Daniel,这能行吗?您仍然需要将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>
    
    require('login.php');
    
    function get_value()
    {
    return get_value;
    }