首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建基于ID的PHP表单?

如何创建基于ID的PHP表单?
EN

Stack Overflow用户
提问于 2010-12-27 19:14:45
回答 4查看 2.6K关注 0票数 0

我想基本上创建一个PHP表单,将数据存储到数据库中-基于您输入的内容-这当然是基本的。

然而,有一个怪癖:

这个php表单必须是基于id的-给一个链接。

假设像mywebsite.com/form.php=id446这样的东西将生成与mywebsite.com/form.php=id447这样的东西完全不同的形式。

这两种表单的差异大约是3-4个表单字段(无论它们是否出现),其余的是相同的

现在,我可以强行实现form446.phpform447.php等等--但我不想这样。

那么有没有什么函数可以让我这样做呢?

另外,有没有什么模板可以制作美观、美观的php表单,让它们更容易填写?

谢谢你们,xoxo

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-27 19:26:30

您可以使用单个form.php,但在代码中使用if结构来包含/排除各个部分-因此类似于:

代码语言:javascript
复制
<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的,因此这可能是可行的。

票数 0
EN

Stack Overflow用户

发布于 2010-12-27 19:17:50

你的问题对我来说有点含糊。例如,446和447之间有什么不同?它必须是完全随机的吗?或者,您是否有一组直接可用的字段/表单?

票数 1
EN

Stack Overflow用户

发布于 2010-12-27 19:24:09

代码可能不能正确运行,我没有检查它,但它给出了一些想法。

代码语言:javascript
复制
$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;
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4538294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档