Php 将填充有数据的div从一个简单表单追加到一个包含所有已分组并准备发布的div的表单,并将其减去

Php 将填充有数据的div从一个简单表单追加到一个包含所有已分组并准备发布的div的表单,并将其减去,php,javascript,html,ajax,forms,Php,Javascript,Html,Ajax,Forms,这就是交易: 我有一个订单页,我使用两种形式 第一个表单包含一个订单项目的输入数据,当我按下OK时,我将通过onsubmit=send\u item\u data(this)将表单的输入数据传递给javascript,最后我将返回false在发送项目数据函数中,这样它就不会被过账 在第二个例子中,我想在div组中追加/减去前面的数据(这样我可以轻松地添加或删除它们),但我想不出(或找到)一个解决方案,将第一个表单中的数据分组到一个div中,并将该子div追加到第二个表单中 最后,按下一个按钮,第

这就是交易:

我有一个订单页,我使用两种形式

第一个表单包含一个订单项目的输入数据,当我按下OK时,我将通过
onsubmit=send\u item\u data(this)
将表单的输入数据传递给javascript,最后我将
返回false在发送项目数据函数中,这样它就不会被过账

在第二个例子中,我想在div组中追加/减去前面的数据(这样我可以轻松地添加或删除它们),但我想不出(或找到)一个解决方案,将第一个表单中的数据分组到一个div中,并将该子div追加到第二个表单中

最后,按下一个按钮,第二个表单将发布所有div的数据,我将使用PHP后端代码处理它

代码体:

<form action="" id="first_form" method="post" onsubmit="return send_item_data(this)"> 

    <div id="Select_list">
        <select blah blah>
            ---bunch of options---
        </select>
    </div>

    <div id="extras">
                ---Some extras that you can choose by a checkbox input (I generate it via PHP)---
                example:
                <input name="checkbox[<?php echo $row['column_data_from_query']?>]" type="checkbox" value="checked">
    </div>

            --->Possibly two more input fields here<---

    <input type="button" value="clear" onclick="clear_form()">
    <input type="submit" value="OK">
</form>

<form action="" id="finalize_order_form" method="post"> 
   --->This is the second form<---
   --->In here I want to put the data from the first form so i can handle them by group<---

    if I click OK three times in the first form there should be three groups here that contain each form's data
    <input type="submit" class="button" value="Finallize order"/>
</form>

---一堆选择---
---您可以通过复选框输入选择的一些额外内容(我通过PHP生成)---
例子:

因此,您希望在第二个表单中列出订单项,就像预结账购物车一样。如果使用div,它们将不会与POST数据一起提交到服务器-它们将仅显示。因此,您需要遵循Robert的建议,并在每次添加/删除项目时将第一个表单的数据保存到DB中(除了他的其他原因,如不丢失客户的会话信息)。这样,DB在单击“确认订单”时就已经是最新的了。或者,您需要将Confirm Order按钮挂接到一个JS函数,该函数将div转换回JSON,并将其发布到服务器以存储在DB中

至于从第一个表单的数据创建仅显示div,您的send_item_data函数需要循环所有表单的输入,获取它们的值,并将它们添加到div中,而不管您希望如何显示它们。然后您可以将div插入第二个表单。由于您正在将“this”传递给函数(即表单对象本身),因此可以通过以下方式获得输入:

var inputs = this.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type == 'submit') continue; //ignore the Submit button
    var name = inputs[i].name, value = inputs[i].value;
    ---use the name and value of this input to construct a span or something to insert inside your div---
}
---now you can insert the div into the 2nd form---
var inputs=this.getElementsByTagName(“输入”);
对于(变量i=0;i
您是否正在尝试添加其他订单项目?什么不起作用?也许你可以发布你的JS。仅在客户端存储数据是不明智的。我建议您至少添加一个db表和ajax调用来存储更改,以便它们可以1。稍后将检索2。允许您查看用户对订购的想法,即使他们没有。在后端,所有数据都存储在数据库中(两个表-->一个用于存储订单id、时间和等待者id,另一个包含订单项)。我发现了一个示例,演示了如何(通过JS)附加div元素,但主要问题是:如何将第一个命令中的输入数据放在附加div中,然后将其添加到第二个表单中。之后,我将尝试让用户能够删除他们想要的任何div(从第二个表单中)还有一个编辑功能,所以当他们点击类似于“