【发布时间】:2025-12-27 08:35:10
【问题描述】:
我在 Drupal 中处理事情的一种常见方式是创建一个 CCK 类型,然后创建一个自定义提交处理程序以在提交节点时对 CCK 字段执行逻辑。但是,当 CCK 字段类型为 Date 字段时,我无法获取该值,因为数组的结构不同。
更新 - João Guilherme 有一个更简单的方法,但我仍然无法从下面发布的数组中获取日期值。
$fromDate = $form['field_bill_start'][0]['#value'];
drupal_set_message('<pre>'. print_r($fromDate, TRUE) .'</pre>');
//Which then prints this.
Array
(
[value] => Array
(
[date] => Tue, 08/24/2010
)
)
然后我尝试添加这些打印为 null 的内容。我还在日期和值之前尝试了“#”。
['value']['date']
******************************原帖************************ **************
<?php
function billing_form_billing_node_form_alter(&$form, &$form_state) {
//drupal_set_message('We are hooking it!');
$form['#submit'][] = 'billing_submit_function';
}
function billing_submit_function($form, &$form_state) {
$fromDatePRE = array();
$fromDatePRE[] = $form['field_bill_start'][0]['value']['date'];
$fromDate[] = $fromDatePRE[0]['#value']['#date'];
drupal_set_message('<pre>'. print_r($fromDatePRE[0], TRUE) .'</pre>');
drupal_set_message("From Date = ".$fromDate[0]);
drupal_set_message("From Date2 = ".$fromDatePRE[0]);
$fromDate 正在打印 Sat 8/21/2010 的第一个字符“S”,这是我想要的值,但我想要整个值。我知道这与我访问数组的方式有关,但我无法弄清楚。
这就是我正在使用的 - 我在我试图访问的值上添加了一条评论:
产量:
Array
(
[0] => Array
(
[#type] => textfield
[#default_value] => Sat, 08/21/2010
[#id] => edit-field-bill-start-0-value-datepicker-popup-0
[#size] => 20
[#maxlength] => 30
[#attributes] => Array
(
)
[#description] => Format: Sat, 08/21/2010
[#post] => Array
(
[title] => llllllllllllll
[menu] => Array
(
[link_title] =>
[parent] => Array
(
[hierarchical_select] => Array
(
[selects] => Array
(
[0] => primary-links:0
[1] => label_1
)
)
)
[weight] => 0
)
[hs_form_build_id] => hs_form_7bf97c3c59ba2a064d6e841ae405dd30
[changed] =>
[form_build_id] => form-1f928faaa990f3809da391165d51981a
[form_token] => 616f6e8a7bb9c4ffc2aec65174c0817d
[form_id] => billing_node_form
[log] =>
[pathauto_perform_alias] => 1
[print_display] => 1
[print_display_urllist] => 1
[print_mail_display] => 1
[print_mail_display_urllist] => 1
[print_pdf_display] => 1
[print_pdf_display_urllist] => 1
[field_bill_start] => Array
(
[0] => Array
(
[value] => Array
(
//This is the value I need
[date] => Sat, 08/21/2010
)
)
)
[field_bill_end] => Array
(
[0] => Array
(
[value] => Array
(
[date] => 08/25/2010
)
)
)
[name] => administrator
[date] =>
[status] => 1
[promote] => 1
[op] => Save
)
[#programmed] =>
[#tree] => 1
[#parents] => Array
(
[0] => field_bill_start
[1] => 0
[2] => value
[3] => date
)
[#array_parents] => Array
(
[0] => field_bill_start
[1] => 0
[2] => value
[3] => date
)
[#weight] => 0
[#processed] => 1
[#required] =>
[#input] => 1
[#autocomplete_path] =>
[#process] => Array
(
[0] => form_expand_ahah
)
[#name] => field_bill_start[0][value][date]
[#value] => Sat, 08/21/2010
[#needs_validation] => 1
[#defaults_loaded] => 1
[#sorted] => 1
)
)
【问题讨论】:
-
你写了
$fromDate = ['0']['#value']['#date'],这不会给你任何回报。包含您要访问的数组的变量是什么? -
@kiamlaluno - 你是对的。我已经更新了代码。现在显示的是产生“S”
-
@cinqoTimo - 为了在原始帖子中获得结果,您将其价值哑化的对象是什么?
-
@iKid - 我不明白你的问题。我从 $form 数组中得到这些结果。我不确定它是否是 Drupal 中的“对象”,因为 PHP 通常使用 $object->property 作为 OOP 表示法,这是一个数组。
-
我一直回到这个问题。我不是 drupal 专家,但是当您添加 ['value']['date'] 时,drupal_set_message 是否对值做了一些有趣的事情?您是否尝试过不使用 drupal_set_message 调用的 print_r 或 var_dump?
标签: drupal drupal-6 cck form-submit