2011-12-28 70 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'); 

您還可以添加一個將與表單一起傳遞的密鑰。