为什么这不起作用?
<form action="<?php echo 'test'; ?>"><input type="submit"></form>
为什么要回显'test',我需要将PHP放到一个单独的文件中,并将action属性指向它?如果我有多个带有短PHP脚本的表单,我不能简单地以某种方式内联它们来执行任务,而不是制作许多外部文件吗?
我的目的是让一种控制面板对数据库进行不同类型的更改。
答案 0 :(得分:1)
您不能在动作属性中放置代码,而不是HTML的工作方式。
<form action="index.php">
<input type="hidden" name="do" value="dotest">
您的应用程序中需要一个路由器来分派任务。在这种情况下,“do”查询参数将指示要执行的操作。代码可以是一个大的switch语句(不推荐),也可以将操作存储在单独的files / classes / class方法中。您可以直接查找代码(file_exists
/ method_exists
/ autoloading ...),也可以解析查找并进行某种预注册并将操作存储在字典中({{1 }})。
我建议检查一些PHP框架也得到一些想法。那里有一些非常聪明的路由器和控制器抽象。它会比你想象的更好,特别是如果你没有经验。
注意:许多小文件没有任何问题 - 只是尝试为您的Web应用程序使用单个入口点。
答案 1 :(得分:0)
因为浏览器没有也无法关心PHP。当浏览器收到此HTML时:
<form action="<?php echo 'test'; ?>"><input type="submit"></form>
该怎么办呢?只是“运行PHP”?您的意思是在服务器上设置和配置的PHP ?不,这根本不是它的运作方式。
HTML规范说action
属性指向浏览器将表单数据发送到的 URL 。然后完全取决于该URL的服务器对它进行操作,这就是PHP运行的地方。
您也不需要单独的物理文件,您可以将所有表单提交到相同的PHP文件/ URL,然后根据该文件/ URL确定收到的内容并输出不同的内容。您也可能想要查看Javascript和AJAX请求。