Как перечислить имена полей формы - PullRequest
1 голос
/ 26 августа 2011

У меня есть форма, и я хочу сгенерировать список имен полей формы. Вот как я сейчас это делаю:

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

Есть ли лучший способ сделать это?

UPDATE: Просто чтобы уточнить ... Мне интересно, есть ли менее "клуджевый" способ сделать это. Например, предоставляет ли модуль содержимого функцию API, которая проходит по полям. (Я не мог найти один.)

Ответы [ 2 ]

0 голосов
/ 29 августа 2011

извините, я не уверен на 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 ; 
}

теперь у вас есть поля $ array, которые имеют все поля:ваш тип контента ... я надеюсь, что это поможет вам

0 голосов
/ 26 августа 2011

поле, которое вы добавили с помощью cck ... или из системы полей пользовательского интерфейса, начинаются с "field_" и эти поля обычно находятся в узлах ... так что если вы говорите о форме узлов и поля, которые были добавлены с помощью cck .... вы указали правильный путь ... но если эти поля были добавлены программно .... значит, вы ошиблись

...