如何在提交HTML表单时调用PHP函数?

如何在提交HTML表单时调用PHP函数?,php,Php,将数据从窗体发送到函数时遇到问题 这是我的表格: echo "<form id='AddCompany' action='' method=post>"; echo "<table>"; echo "<tr>"; echo "<th colspan='2'>Opret nyt firma</th>"; echo "</tr>"; echo "<td

将数据从窗体发送到函数时遇到问题

这是我的表格:

echo "<form id='AddCompany' action='' method=post>";
echo "<table>";
echo "<tr>";
            echo "<th colspan='2'>Opret nyt firma</th>";
            echo "</tr>";
            echo "<td>Firma Navn:<td><input type='text' name='Name' /></td>";
            echo "</td></tr>";
            echo "<td>Adresse:<td><input type='text' name='Address' /></td>";
            echo "</td></tr>";
            echo "<td>Postnr.:<td><input type='text' name='Zipcode' /></td>";
            echo "</td></tr>";
            echo "<td>By:<td><input type='text' name='City' /></td>";
            echo "</td></tr>";
            echo "<td>Land:<td><input type='text' name='Country' /></td>";
            echo "</td></tr>";
            echo "<td>Tlf:<td><input type='text' name='Phone' /></td>";
            echo "</td></tr>";
            echo "<td>Slogan:<td><input type='text' name='Slogan' /></td>";
            echo "</td></tr>";
            echo "<td>Catch All Email:<td><input type='text' name='Email' /></td>";
            echo "</td></tr>";
            echo "<td>Logo 1:<td><input type='FILE' name='Logo1' /></td>";
            echo "</td></tr>";
            echo "<td>Lille  Logo:<td><input type='FILE' name='SmallLogo' /></td>";
            echo "</td></tr>";
            echo "<td>Logo 2:<td><input type='FILE' name='Logo2' /></td>";
            echo "</td></tr>";
            echo "<td colspan='2'><input type='submit' value='Opret Firma' />";
            echo "</form>";
            echo "</td></tr>";
            echo "</tr>";
            echo "</table>";
我刚刚意识到您可能还需要以下代码:

class Company extends Default_Table
{
    // additional class variables go here
    function __construct ()
    {
        $this->tablename       = 'Company';
        $this->dbname          = 'oop';
        $this->rows_per_page   = 15;
        $this->fieldlist       = array('ID', 'Name', 'Address','Zipcode','City','Country','Phone','Slogan','CatchAllEmail','Logo1','LogoSmall','Logo2');
        $this->fieldlist['ID'] = array('pkey' => 'y');
    } // __construct
} // Company
我应该在哪里调用函数?应该随函数一起发送哪些变量

我尝试了
onclick=insertRecord()
,但似乎不起作用,我认为这是因为我需要插入一个变量,我认为它需要是表单数据的数组,因为函数是用数组声明的

正如你所看到的,我在这方面是一个非常温柔的人

我发现:

如果我在insertRecord函数中的foreach循环后回显我的$query,我会看到如下查询: 在公司集合中插入名称='1',地址='2',邮政编码='3',城市='4',国家='5',电话='6',标语='7',CatchAllEmail='8',Logo1='',LogoSmall='',Logo2=''


但是仍然没有插入任何内容,我已经在2台服务器上尝试过,我知道用户有插入权限,但是没有插入任何内容。

无需使用该功能,但您可以这样做, 从
中删除
action=”“

然后检查一下

    if($_POST){
     //your function logic
    // get variable data like 
      echo $_POST["Name"];
    }  

享受吧

您需要有某种方法将POST数据放入$fieldarray。可以简单到:

function insertRecord ($fieldarray) {
   //the function you have above
}

insertRecord($_POST);

当然,这取决于insertRecord函数是如何设置的,以及它是否能够以您设置的方式识别所有POST数据。

请以最友好的方式进行处理,我建议您阅读一本关于PHP/MySQL/HTML/JavaScript的书或教程。
我会尽我最大的努力来解释这一点,而不会超出这个问答网站的范围

代码的第一部分是一个由PHP脚本编辑的HTML表单
echo
,因此HTML表单现在位于客户端的浏览器中

您试图使用
onclick=insertRecord()
将用PHP编写的事件处理程序(服务器端)绑定到浏览器(客户端)中触发的事件

如何解决您的问题?

您需要
POST
将此表单发布到包含
insertRecord()函数的PHP脚本中。首先,您需要修改
中的
操作
属性,并将其指向具有此函数的
.php
脚本,然后只需执行以下操作:

$cmpny = new Company();
$cmpny->insertRecord($_POST);

只是一个提示:你可以做1 echo,你不必键入70次。是的,我在键入70次后发现:-)谢谢你的提示:-)这个函数是对象的一部分吗?如果是这样,您可以使用_构造方法将post数据插入函数中。onclick方法用于javascript函数,不会直接与php函数一起使用。是的,它是类Default_表的一部分,我正在尝试插入一家公司,请参见我在您的答案下的回复:)cutebabs,我在echo$_POST[“Name”]中获得输出;但是我没有把数据插入数据库。所以我需要做一些事情,比如$cmpny=newcompany()$cmpny->insertRecord($\u POST);我猜是在if语句中,但这不起作用。我发现我确实调用了函数并将数据发送到函数,但没有插入任何内容,所以现在我想问题是,为什么它在接收所有数据的情况下也没有插入呢?谢谢你的回答,我也在读一本书,我现在正在努力自学这些东西,我认为一开始的学习曲线相当缓慢。该函数是类Default_表的一部分,但这不起作用,即使在编写您的和cutebab时也是如此answers@MartinNielsen对不起,我的朋友。在编写代码的方式、调试代码的方式以及提问的方式中,都存在一些基本问题。我非常怀疑在这一点上你能得到任何帮助。你有一条必须一步一步走的学习道路,跳跃不是一个好主意。我祝你好运。
$cmpny = new Company();
$cmpny->insertRecord($_POST);