PHP函数并在html中调用它

时间:2017-02-07 11:09:01

标签: php html sql

我对PHP很新,所以如果这是一个愚蠢的问题,请原谅。

我有一个单独的PHP文件,其中包含一些函数,它们最初与HTML站点位于同一文档中,但我想将它们移动到自己的PHP文件中。

最初在HTML中,我将PHP连接到SQL服务器,然后运行SQL查询,然后我希望该查询的结果填充一个下拉框,因此返回的查询中的每一行都是一个,这很好用但当我将所有功能移到单独的PHP文件中时,它就不再有效了。

我现在有一个函数,它连接到数据库,运行查询然后尝试写输出,但我认为这部分导致问题。

我已经包含了这个新的PHP函数文件。

这是功能:

function results() {
    $connection = db();

    $smt = $connection->prepare('SELECT * FROM tblResults');
    $smt->execute();
    $data = $smt->fetchAll();

    foreach ($data as $row) {
    echo "<option>".$row['Score']."</option>";
    }
}

在HTML中我有这个代码来调用函数:

<select class="selectpicker" data-live-search="true" data-width="auto">
    <?php results(); ?>
</select>

正如我所说的,我是PHP的新手,所以如果这是一个明显的错误或格式错误,我很抱歉。

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:0)

你不能以这种方式调用函数...你需要首先包含php文件然后你可以调用函数,如果它没有包含在类中,否则你需要创建一个对象来调用函数。 / p>

答案 1 :(得分:0)

首先你必须包含功能文件 试试这个

<select class="selectpicker" data-live-search="true" data-width="auto">
<?php include("******.php"); ?>
<?php results(); ?>

答案 2 :(得分:0)

您需要使用HTML代码将PHP文件包含在文件中。

<?php
include("fileName.php");
?>

答案 3 :(得分:0)

使用以下代码

     $smt = $connection->prepare('SELECT * FROM tblResults');
     $smt->execute();
     $data = $smt->fetchAll();     
     <select class="selectpicker" data-live-search="true" data-width="auto">
       <?php
          foreach ($data as $row) {
       ?>
              <option><?php echo $row['Score'] ?></option>;
              <?php } ?>
     </select>

答案 4 :(得分:0)

我不确定问题是什么,但我已设法修复它。

其中一个功能是与数据库的连接,它有一个session_start();在它内部,虽然我在开头包含了这个函数的php文件,看起来我还要放入session_start();在我的函数结果的开头();所以它现在看起来像这样。

function results() {
session_start();

//databse connection Sting
$connection = new PDO("sqlsrv:server=localhost;Database=Results", "user", "password"); 

$smt = $connection->prepare('SELECT * FROM tblResults');
$smt->execute();
$data = $smt->fetchAll();

foreach ($data as $row) {
echo "<option>".$row['Score']."</option>";
}

}

同样,我不确定为什么我需要建立session_start,但似乎已经解决了这个问题。

感谢您的所有回复,您帮我解决了问题。

干杯!

答案 5 :(得分:0)

将上述函数放在php文件中假设resultfile.php

<?php
function results() {
    $connection = db();

    $smt = $connection->prepare('SELECT * FROM tblResults');
    $smt->execute();
    $data = $smt->fetchAll();

    foreach ($data as $row) {
    echo "<option>".$row['Score']."</option>";
    }
}
?>

将index.html扩展名更改为index.php,并在beginnig中添加以下行

所以你应该有两个php文件,一个带有php函数,另一个带有你的html代码并包含php。

如果正确配置了db(),则调用index.php应该生成结果。如果您是新的

,请尝试使用简单的回声