使用Jquery& amp;动态填充表单阿贾克斯

时间:2013-04-20 17:15:12

标签: php javascript forms zend-framework dynamic

我在实现我想要做的事情上遇到了一些问题。

我正在做一个像页面一样的邮箱,我想添加一个“响应”按钮,它会填充一些带有一些值的表单。

我在php中通过消息生成我的页面消息。对于每条消息,我生成一个带有自己id的输入按钮,当我点击按钮时,我想在新窗口中打开一个表单,其中收件人和标题是预填充的,用户不能更改,另一个文本区域是用户可以填写他的消息。

为此,我有一个包含3个值(收件人,标题和消息)的表单的通​​用模板。所有(目前)文本或textarea值。

是否可以使用一个表单向任何人发送消息,或者我是否必须为每个具有预填充值的消息生成表单?最后的解决方案似乎非常可怕。

我试图找到一些我只能用javascript做的事情,因为我希望表单能够由Ajax异步提交。 我可以创建一个onClick事件并将值传递给该函数,但在这种情况下,我将没有用户将输入的textarea的值。

有没有办法做,例如,Javascript中的整个表单,其中包含我将通过onClick事件传递的值,从已填充这些值的表单中获取textarea的值,然后通过Ajax发送所有内容?

1 个答案:

答案 0 :(得分:0)

嗯,这就是我所做的。

对于生成的每个Respond按钮,我设置了一个onClick事件,将我希望在我的表单中预先填充的字段传递给JS函数RespondMessage()

我还在页面底部创建了一个用css隐藏的表单。 这个表单包含尽可能多的隐藏字段,因为我想要预先填充的数据,以及尽可能多的跨度,我想显示信息。

当我调用RespondMessage函数时,我手动设置我的表单中的隐藏字段,其中包含我调用函数的参数。 之后,我用我想要显示的信息填充我的跨度(例如,我为我的消息设置收件人的名称)。

完成所有这些后,您的表单就可以显示了。因此,在设置表单中的字段后,我只需将表单从display:none传递给display:block,并执行大量的css技巧,使其变得流畅而美观。

所以现在你有了预先填写的表单,你只需要另一个函数来进行Ajax调用,以避免在每次响应后重新加载页面,你将使用表单提交按钮的onClick事件来调用它。 / p>

我希望这个过程可以帮助别人。

我不太确定这是最好的方法,我发现它非常脏并且可以利用,所以你需要比平常更多的服务器端检查,但是它可以完成这项工作。

我不提供代码,因为它几乎都非常特定于您正在设置的应用程序。