2011-12-28 71 views
3

问题是我使用ajaxed形式与客户端验证使用Drupal.settings来获取一些数据。作为一个例子来验证年龄我设置以下数据的Drupal设置:如何清除Drupal.settings?

drupal_add_js(array(
'viewpoint_profile' => array(
    'year' => date('Y'), 
    'month' => date('m'), 
    'day' => date('d') 
)), 'setting'); 

但每当形式与AJAX重新加载它上面的合并设置,Drupal.settings,如果在第一次通话Drupal.settings.viewpoint_profile.year == 2011,阿贾克斯重装后很Drupal.settings.viewpoint_profile.year == array(2011, 2011),所以我不能再用js作为字符串了。

所以基本上,在添加之前清除viewpoint_profile的设置将会很好,但是我没有设法找到如何?或者可能有另一种方法来解决这个问题?

+0

从窗体中分离设置赋值并将其移至模块的hook_init。可能不是最好的解决方案,但现在它可以正常工作。 – Ivan 2011-12-28 14:16:00

+0

您是否找到更好的解决方案+1? – bobylapointe 2014-02-05 11:40:45

回答

0

如果您必须使用drupal设置,那么为什么不将这些值设置为数组。

drupal_add_js(array(
    'viewpoint_profile' => array(array(
    'year' => date('Y'), 
    'month' => date('m'), 
    'day' => date('d') 
))), 'setting'); 

您还可以添加一个将与表单一起传递的密钥。