如何使用htmlaction属性调用php函数?

如何使用htmlaction属性调用php函数?,php,html,action,Php,Html,Action,大家好,当我使用html动作属性时,我在尝试调用函数时遇到了困难 $cm = new customer_module(); $rm = new room_module(); $c_array = $cm->getByStatus('CHECKED-IN'); foreach($c_array as $row) { $temp = $row['room_no']; $r_array = $rm->getByRoomNumber($temp); $rray =

大家好,当我使用html动作属性时,我在尝试调用函数时遇到了困难

$cm = new customer_module();
$rm = new room_module();

$c_array = $cm->getByStatus('CHECKED-IN');

foreach($c_array as $row)
{
    $temp = $row['room_no'];
    $r_array = $rm->getByRoomNumber($temp);
    $rray = $r_array[0];
    echo( 
    $cm->checkOutCustomer($row['last_name'],$row['first_name']).
    "<tr>".
    "<td>".$row['room_no'].     "</td>".
    "<td>".$rray['type'].       "</td>".
    "<td>".$row['last_name'].   "</td>".
    "<td>".$row['first_name'].  "</td>".
    "<td>".$row['phone_no'].    "</td>".
    "<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
    "<td>"."<Button>Check Out</button>"."</td>".
    "</form>".
    //"<td>"."<input type='button' name='checkingOut' value='Check Out' />"."</td>".
    "</tr>");
}
如您所见,我正在尝试为action属性运行代码$cm->checkOutCustomer$row['last\u name',$row['first\u name']

$cm = new customer_module();
$rm = new room_module();

$c_array = $cm->getByStatus('CHECKED-IN');

foreach($c_array as $row)
{
    $temp = $row['room_no'];
    $r_array = $rm->getByRoomNumber($temp);
    $rray = $r_array[0];
    echo( 
    $cm->checkOutCustomer($row['last_name'],$row['first_name']).
    "<tr>".
    "<td>".$row['room_no'].     "</td>".
    "<td>".$rray['type'].       "</td>".
    "<td>".$row['last_name'].   "</td>".
    "<td>".$row['first_name'].  "</td>".
    "<td>".$row['phone_no'].    "</td>".
    "<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
    "<td>"."<Button>Check Out</button>"."</td>".
    "</form>".
    //"<td>"."<input type='button' name='checkingOut' value='Check Out' />"."</td>".
    "</tr>");
}
代码在echo之后的第一行运行良好,但当我粘贴它以执行操作时,$cm似乎存在语法问题


请告诉我问题是什么,非常感谢

PHP由服务器进行评估

HTML由客户端解释

这两个人永远不会相遇

有两种选择:

将函数移动到单独的页面。将表单的操作设置为该页面。这将需要一些重定向,以将用户发送回包含所有表行的页面

将函数移动到单独的页面。使用JavaScript取消表单提交,然后使用AJAX将数据发送到单独的页面。这种情况很糟糕,因为您必须处理跨浏览器事件和AJAX,所以我建议使用一个库,如


PHP由服务器进行评估

HTML由客户端解释

这两个人永远不会相遇

有两种选择:

将函数移动到单独的页面。将表单的操作设置为该页面。这将需要一些重定向,以将用户发送回包含所有表行的页面

将函数移动到单独的页面。使用JavaScript取消表单提交,然后使用AJAX将数据发送到单独的页面。这种情况很糟糕,因为您必须处理跨浏览器事件和AJAX,所以我建议使用一个库,如

这条线错了

"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
这应该行得通

"<form action=" . $cm->checkOutCustomer($row['last_name'],$row['first_name']) . ">" .
看起来只有复制粘贴错误。

这一行是错误的

"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
这应该行得通

"<form action=" . $cm->checkOutCustomer($row['last_name'],$row['first_name']) . ">" .
看起来只有复制粘贴错误。

如果希望在提交表单时执行checkOutCustomer方法,那么这不是正确的实现方法。您需要在action属性中指定url。表单将提交到此url,您可以在此url中访问表单字段作为$\u POST或$\u GET super globals的元素,具体取决于方法,然后对其进行处理

但是如果这个方法checkOutCustomer返回一个您想要设置为表单的action属性的url,那么

而不是

"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
试一试

如果希望在提交表单时执行checkOutCustomer方法,那么这不是正确的实现方法。您需要在action属性中指定url。表单将提交到此url,您可以在此url中访问表单字段作为$\u POST或$\u GET super globals的元素,具体取决于方法,然后对其进行处理

但是如果这个方法checkOutCustomer返回一个您想要设置为表单的action属性的url,那么

而不是

"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
试一试


我不明白为什么@sdleihsirhc的答案在正确的时候被否决了,而错误的答案得到了更多的选票。PHP在服务器端进行评估-HTML由浏览器处理。这意味着您的代码当前将签出列出的每个用户。不是你想要的吗?我不这么认为

action属性不用于在提交上执行服务器端函数。您希望将其设置为一个PHP文件,并让该PHP文件进行处理。尝试再次复习HTML表单的基础知识,因为您似乎不理解

另外,尝试创建一个Customer类,只需添加$Customer->checkout方法,只需搜索活动客户记录(即未签出)并显示这些记录中的信息。然后执行类似于$customer=新客户$roomNo,$info的操作。。。然后$customer->checkIn

这对任何维护系统的人来说都更有意义。无论如何,从我所看到的,你正在尝试创建一个酒店管理系统。PHP并不是最适合手头工作的语言,不要把我所知道的唯一语言都说成废话——学一些适合任务的东西,因为缺乏知识不是为手头工作选择糟糕语言的借口

-


除了小东西或指针之外,我不会给出任何有效的代码-你必须学习,而不是让其他人复制/粘贴。

我不明白为什么@sdleihsirhc的答案在正确的时候被否决了,而错误的答案得到了支持。PHP在服务器端进行评估-HTML由浏览器处理。这意味着您的代码当前将签出列出的每个用户。不是你想要的吗?我不这么认为

action属性不用于在提交上执行服务器端函数。您希望将其设置为一个PHP文件,并让该PHP文件进行处理。尝试再次复习HTML表单的基础知识,因为您似乎不理解

另外,尝试创建一个Customer类,只需添加$Customer->checkout方法,只需搜索活动客户记录(即未签出)并显示这些记录中的信息。然后呢 类似于$customer=新客户$roomNo,$info。。。然后$customer->checkIn

这对任何维护系统的人来说都更有意义。无论如何,从我所看到的,你正在尝试创建一个酒店管理系统。PHP并不是最适合手头工作的语言,不要把我所知道的唯一语言都说成废话——学一些适合任务的东西,因为缺乏知识不是为手头工作选择糟糕语言的借口

-


除了小东西或指针之外,我不会提供任何工作代码-你必须学习,而不是让其他人复制/粘贴。

如果我们知道$cm->checkOutCustomer$row['last_name',],那么$row['first_name',]做了什么,我们可以更好地帮助你。基本上,我的页面显示了一个包含当前已签入的所有客户的表。我想为表中显示的每个客户创建一个签出按钮。我希望能够单击该客户旁边的check out,将其状态修改为check out。基本上,我的checkOutCustomer功能将搜索客户的姓氏和名字,然后将其状态从已签入更改为。如果我们知道$cm->checkOutCustomer$行['last_name',],则$row['first_name']做了什么,那么我们可以更好地帮助您。基本上,我的页面显示当前已签入的所有客户的表。我想为表中显示的每个客户创建一个签出按钮。我希望能够单击该客户旁边的check out,将其状态修改为check out。基本上,我的checkOutCustomer函数会搜索客户的姓和名,然后将他们的状态从“已签入”更改为“已签入”。是什么让你认为OP试图在浏览器中打开PHP源代码?对我来说,他的问题很明显不是这样的。虽然SDLEIHSIRCH答案中的信息是正确的,但这不是问题的正确答案。如果你回头看代码,问题是用来将action属性插入echo语句的语法。哇:你知道action属性指定了要向其发送数据的页面,对吗?如果您将action设置为myFunc,那么myFunc将在页面加载时执行,该操作将设置为myFunc的返回值,并且您已经搞糟了一切。你们投票否决了正确答案……是什么让你们认为OP试图在浏览器中打开PHP源代码?对我来说,他的问题很明显不是这样的。虽然SDLEIHSIRCH答案中的信息是正确的,但这不是问题的正确答案。如果你回头看代码,问题是用来将action属性插入echo语句的语法。哇:你知道action属性指定了要向其发送数据的页面,对吗?如果您将action设置为myFunc,那么myFunc将在页面加载时执行,该操作将设置为myFunc的返回值,并且您已经搞糟了一切。你们投票否决了正确答案。。。