重复的表单条目:如何发送到mysql数据库

时间:2012-12-11 00:12:52

标签: php html forms post get

我有一个用户可以创建食谱的页面。我有一个javascript脚本,允许用户继续添加表单输入元素以获取更多成分。假设配方有4种成分,用户可以继续添加输入。然而,这会将输入ID /名称的id更改为ingredient1 / 2/3/4,并且我无法理解如何从表单帖子获取信息,因为元素的数量由用户自行决定。您将如何将结果加载到PHP变量中,然后将它们插入到mysql查询中。

html表单的语法

<div id="ingredient1" class="clonedInput">
                <h2 class="first-column">Ingredient</h2>
                <span style="float:left; padding-right: 10px;">
                <input type="text" name="scroll" value="Add Ingredient" id="ingredient" class="ingredient"/>
                </span>
</div>

成分1将改为成分2,目的是添加2种成分。

一个有点混乱的问题,所以任何帮助都会很棒!

JB

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是在输入元素名称中使用[]。这会将数据作为数组发布。所以,假设你有这个作为你的表格的成分输入元素(在javascript添加了几个之后):

<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />
<input type="text" name="ingredients[]" value="" />

当用户POST数据时,您将能够访问$_POST['ingredients']

的成分数组

答案 1 :(得分:0)

我会告诉你逻辑,而不是代码,因为这里只有javascript是不够的。

  1. 你创造了一个表成分。你可以允许他们使用的任何东西。 id,ecc
  2. 在发布时,而不是让用户自由选择他们的成分1,成分2 ...你从成分表中加载值并将它们作为成分[id_from_db] ecc ...
  3. 编入索引。
  4. 你创建一个表食谱。它应该有一个唯一的ID,其描述
  5. 您创建了一个关系表recipe_id,ingredient_id
  6. 然后当用户发布其数据时,您会在配方中创建1行,并在关系表中创建尽可能多的行作为他们使用的成分。

    稍后选择食谱时,你也可以选择关系表中的所有内容,那里可能有几行......

    希望对您有所帮助。无法向您展示任何代码,但如果您了解它的原因,就不难做出。

    格言