我想基本上创建一个PHP表单,将数据存储到数据库中-基于您输入的内容-这当然是基本的。
然而,有一个怪癖:
这个php表单必须是基于id的-给一个链接。
假设像mywebsite.com/form.php=id446这样的东西将生成与mywebsite.com/form.php=id447这样的东西完全不同的形式。
这两种表单的差异大约是3-4个表单字段(无论它们是否出现),其余的是相同的
现在,我可以强行实现form446.php、form447.php等等--但我不想这样。
那么有没有什么函数可以让我这样做呢?
另外,有没有什么模板可以制作美观、美观的php表单,让它们更容易填写?
谢谢你们,xoxo
发布于 2010-12-27 19:26:30
您可以使用单个form.php,但在代码中使用if结构来包含/排除各个部分-因此类似于:
<form action="doForm" method="post">
Input 1: <input type="text" id="input1"/>
Input 2: <input type="text" id="input1"/>
<?php
//This field only appears if you hit the url form.php?formid=123
if($_GET['formid'] == 123):
echo 'Input 3: <input type="text" id="input3"/>';
endif;
?>
<input type="submit" id="submit" value="submit" />
</form>作为一种服务器端脚本语言,PHP并不是制作漂亮、可用的表单所需的--它只关心表单的功能处理。对于漂亮的表单,您可能需要一些漂亮的HTML / CSS和javascript。在谷歌上搜索“可用表单”,并查看以下jQuery插件列表以获取想法:http://www.queness.com/post/204/25-jquery-plugins-that-enhance-and-beautify-html-form-elements
-编辑-我应该假设你也需要大约10000种不同的表单,它们有自己独特的元素吗?我希望(为了您自己的理智!)事实并非如此。如果你可以减少这一点,那么你可能想尝试添加formType作为url参数,而不仅仅是ID,这样你就可以在组中解析出这些参数。
老实说,这是我无论如何都会使用数据库的那种工作-我会设置一个表来保存每个表单的ID号,并为其关联的元数据设置另一个字段(可能在一个数组中,甚至是一个序列化的数组中)。然后,您可以在应用程序中将其提取出来,并且仍然可以使用formId作为唯一的url参数。从您的其他评论中,我猜测保存已保存数据的表不是特定于formId的,因此这可能是可行的。
发布于 2010-12-27 19:17:50
你的问题对我来说有点含糊。例如,446和447之间有什么不同?它必须是完全随机的吗?或者,您是否有一组直接可用的字段/表单?
发布于 2010-12-27 19:24:09
代码可能不能正确运行,我没有检查它,但它给出了一些想法。
$formTypes = array();
$formTypes["type1"] = array("var1" => "string", "var2" => "textarea");
$formTypes["type2"] = array("var1" => "string");
$forms = array();
$forms["446"] = "type1";
$forms["447"] = "type2";
foreach ($formTypes[$id] as $varname => $vartype) {
switch ($vartype){
case "string":
print "<input name='" . $varname . "'>";
break;
case "textarea":
print "<textarea name='" . $varname . "'></textarea>";
break;
}
}https://stackoverflow.com/questions/4538294
复制相似问题