試圖找出如何解決「非法選擇」錯誤錯誤。Drupal的7 - 使用非FAPI AJAX方法來替換選擇列表時,「已檢測到非法的選擇」爲ajaxed選擇字段(不使用Drupal的FAPI #ajax)
例 節點創建形式,有以下選擇列表的鏈接在ctools打開自定義窗體模式窗口中添加一個新值,併成功的模式提交表單的節點形式選擇被新值取代。
<?php
if (!empty($form_state['executed'])) {
// Replace node form select if form submit was successful.
module_load_include('inc', 'node', 'node.pages');
$node_form = node_add('photo');
$new_field = drupal_render($node_form[$field]);
$output = array();
$output[] = ajax_command_replace($selector, $new_field);
$output[] = ctools_modal_command_dismiss();
}
print ajax_render($output);
我能得到它的工作,直到我提交原始節點形式,在這裏我得到一個「非法的選擇」的錯誤,大概是因爲節點形式使用緩存的形式值來驗證。 設置$ form_state ['rebuild'] = TRUE;修復非法選擇錯誤,但是然後節點表單中的圖像字段無法正常工作。圖像文件被上傳並保存到節點,但縮略圖,alt和標題標籤不會被加入)。 Dblog獲取此錯誤是因爲它嘗試將數據發佈到舊的表單標識(預重建)。
location: file/ajax/field_image/und/0/form-DSbMdFlKNDaAJSFY4fVIHkcg2eMCDqYZHUfitCnR0VA
message: Invalid form POST data.
有沒有更好的方式來代替選擇列表,以避免「非法選擇」的錯誤,或者我應該檢查是否有一個文件模塊的臭蟲以$ form_state [「重建」]?作爲一種可能的選擇,我找不到任何有關如何從另一個表單觸發$ form #ajax事件的文檔。不知道這是否可能。 任何指導將不勝感激。
這在Drupal 6爲我工作太偉大。謝謝! –