2013-08-29 66 views
1

我有兴趣为孩子们创建一个填空故事发生器。我想创建一个表单,在这个表单中可以放置角色和其他东西的名称,并让这些数据填充预先创建的故事。在他们点击提交之后,他们将被带到后续页面,并以纯文本形式输入内容和故事。我很新,但非常渴望学习。创建这种能够产生故事的表单的最佳方式是什么?填补空白故事发生器

+0

这些故事有多大(char count)以及会有多少?你打算如何存储它们,你是否也将存储用户(孩子)生成的故事? –

+0

对于初学者来说,将会有大约10个每个大约2500个字符的短篇故事。我并不打算存储它们,只是将它们的输入内容填入文本中,以便它们可以将其复制并粘贴到文字处理器中,或直接从浏览器打印出来。 – Master

+0

@Ile此外,表单将只有简单的输入框,如“名称”,“字符一”,“字符二”,“男孩或女孩”(这可能是一个单选按钮),“位置”。最后,他们会选择类似科幻或动作的类型(这将是表格如何知道要抓取哪个故事模板)。一旦完成,他们会看到这个故事。 – Master

回答

0

看来您需要两个数据库表 - 一个用于存储原始故事模板,另一个用于存储生成的文本。 模板数据库的挑战性部分是表示可以有用户输入的部分。一个想法 - 以下列方式在文本内部放置一个特殊的格式代码:

曾几何时,在森林很远的地方,住:: 00001 ::。

假设你正在加载该模板,因为它是在一个窗体内的元素(我会避免用于此目的的文本框,只是放置文本)。

将文本加载到网页后(javascript onload),用输入字段替换您的标记(我会使用jquery)。你可以使用jquery来搜索元素text/innerHtml并用另一个html元素替换它。 Here is an idea how to do that。只要元素文本中有“::”,就可以在javascript while循环中完成用输入替换标记。

那么您:: 00001 ::可以代替例如具有:

< INPUT TYPE = '文本' ID = 'input00001' 名称= '输入[00001]'/>

然后,当用户提交表单时,可以获取每个字段的值,并使用给定的ID将它们存储到第二个数据库。通过这种方式,您可以稍后重新加载它们(相同的过程,而不是输入,您将用相应的值替换代码)。

这样,在第二个数据库表中,您只保存输入值而不是整个文本,以节省内存。可能在第二张表中,您希望存储字段的ID,值,可能是模板ID(以便您知道它对应哪个故事模板)以及用户标识或至少一个时间戳,以防万一您可以许多为同一模板生成的故事。

希望这会有所帮助!