大家好我在使用html <form>
操作属性时尝试调用函数时遇到了困难。
$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>");
}
如您所见,我正在尝试为操作属性运行代码$cm->checkOutCustomer($row['last_name'],$row['first_name'])
。
我的echo之后第一行的代码运行正常,但是当我粘贴它以进行操作时,似乎$cm
存在语法问题。
请告诉我问题是什么,非常感谢!
答案 0 :(得分:3)
如果您希望在提交表单时执行checkOutCustomer
方法,那么它不是正确的实现方式。您需要在action属性中指定url。表单将提交到此url,您可以在其中访问表单字段作为$ _POST或$ _GET超级全局变量的元素(取决于方法),然后处理它们。
但是如果此方法checkOutCustomer
返回您想要设置为表单的action属性的url,那么
而不是
"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
尝试
"<form action=" . $cm->checkOutCustomer($row['last_name'],$row['first_name']) . ">".
答案 1 :(得分:1)
我不明白为什么@ sdleihssirhc的答案在正确的时候被拒绝了,错误的答案得到了回报。 PHP在服务器端进行评估 - HTML由浏览器处理。这意味着您的代码当前会检查列出的每个用户。不是你想要的?不这么认为。
action
属性为非,用于在提交时执行服务器端功能。您想将其设置为PHP文件并让该PHP文件进行处理。尝试再次浏览HTML表单的基础知识,因为您似乎并不理解。
还尝试创建一个Customer
类,只需添加一个$customer->checkout()
方法,然后只搜索活动客户记录(即未检出)并显示其中的信息。然后执行$customer = new Customer($roomNo, $info ...)
然后$customer->checkIn()
维护系统的人更有意义。无论如何,从我所看到的,你正试图建立一个酒店管理系统。 PHP不是适合手头工作的最适合的语言,并且不给出任何“我知道的语言”废话 - 学习适合任务的东西,因为缺乏知识不是借口为手头的工作选择一种糟糕的语言。
-
我不会提供任何工作代码,除了小东西或指针 - 你必须学习,而不是让其他人做只需复制/粘贴。
答案 2 :(得分:0)
PHP由服务器评估。
HTML由客户端解释。
这两个人永远不会见面。
有两种选择:
将您的功能移至单独的页面。将表单的操作设置为该页面。这需要一些重定向,将用户发送回包含所有表行的页面。
将您的功能移至单独的页面。使用JavaScript取消表单的提交,然后使用AJAX将数据发送到该单独的页面。这种情况很糟糕,因为你必须处理跨浏览器事件和AJAX,所以我建议使用像jQuery这样的库。
答案 3 :(得分:0)
这条线错了。
"<form action="$cm->checkOutCustomer($row['last_name'],$row['first_name']);">".
这应该有用。
"<form action=" . $cm->checkOutCustomer($row['last_name'],$row['first_name']) . ">" .
看起来像是一个复制和粘贴错误。