2016-06-14 49 views
0

我需要完全用Javascript来管理复杂的表单。javascript的序列化表单

我不想将整个表单HTML标记提供给用户。

这就是为什么我需要序列化表单,所以我可以用JS来操纵它,而用户在提交回服务器之前用一些HTML交互操纵。

我看到this pretty old question"deprecated" bundle

的问题很简单:我如何序列化的Symfony表单的基础数据


这是我第一次尝试,已实施的相关对象JsonSerializable后:

{% form.vars.data|json_encode %} 

但显然这个编码整个对象公开的属性

+0

你试过要做到这一点:使用jquery ajax与Symfony中的json和序列化程序组件(http://symfony.com/doc/current/components/serializer.html) – XZKS

+0

有什么解释为什么这个问题值得关闭? –

+0

现在我看到了接近的全局原因,我想我理解了原因:也许人们不知道我想要在表单中序列化什么。现在我在更新的问题中告诉它:为表单配置的基础数据 –

回答

0

既然我们可以很容易地反序列化提交的表单使用标准的Symfony工具,我认为会有工具以相同的格式序列化它。那好像不是这样。

,我们似乎已经实现了自己的序列,这里怎么会是这样的:

static public function serializeForm(FormInterface $form) 
{ 
    if (!$form->all()) { 
     return $form->getViewData(); 
    } 
    $data = array(); 
    foreach ($form->all() as $child) { 
     $data[$child->getName()] = self::serializeForm($child); 
    } 

    return $data; 
} 

我把有趣的部分从所谓的“过时” SimpleThingsSerializerBundleform serializer