如何列出表单的字段名称

时间:2011-08-25 23:17:45

标签: drupal drupal-6 drupal-fapi drupal-forms

我有一个表单,并希望生成表单的字段名称列表。以下是我目前的工作方式:

$fieldnames = array();  
foreach ($form as $key=>$val){
    if (substr($key, 0, 6) === 'field_'){ 
      $fieldnames[] = $key;
    }
}

有更好的方法吗?

更新: 只是为了澄清......我想知道是否有一种“kludgey”方式可以做到这一点。例如,内容模块是否提供循环遍历字段的api函数。 (我找不到一个。)

2 个答案:

答案 0 :(得分:0)

您通过cck ...或从UI字段系统添加的字段以“field_”开头 这些字段通常在节点中...所以如果你正在谈论节点形式 和cck添加的字段......你的方式是正确的...但如果这些字段是以编程方式添加的......所以你的方式是错误的

答案 1 :(得分:0)

抱歉,我不是100%肯定,但我认为你不能得到所有以编程方式添加的字段..但是如果你从cck或'/ admin / content / node-type / stores / fields'中添加了这些字段其中{stores}是您正在使用的内容类型,那么您可以从{content_node_field_instance}表中获取此字段名称,如下所示

$result_handle = db_query("select field_name from {content_node_field_instance} where 
`type_name` = '%s'","yourContentTypeName") ;
while($result_object = db_fetch_object($result_handle)){
 $fields[] = result_object->field_name ; 
}

现在您拥有数组$ fields,其中包含您内容类型的所有字段...我希望这会对您有所帮助