各位前輩好
我所使用的版本是drupal-7.12,嘗試寫drupal程式後,有些問題想請教一下
以下是我的程式碼
<?php
function fbcf_poi_form_recommendation_page_two($form , &$form_state)
{
//中略
$form['give_description'] = array(
'#type' => 'item',
'#title' => t("page 2"),
);
for ($control_show=0 ; $control_show<3 ; $control_show++)
{
switch ($control_show)
{
case 0:
fbcb_poi_show_user_interest(6,2);
break;
case 1:
fbcb_poi_show_user_interest(3,0);
break;
case 2:
fbcb_poi_show_user_interest(1,1);
break;
} // end switch
} // end for
return $form;
}
function fbcb_poi_show_user_interest($show_member, $show_predict_char)
{
$form = array();
switch ($show_predict_char)
{
case 0:
for ($control=0 ; $control<$show_member ; $control++)
{
$form['show_movies'] = array(
'#type' => 'item',
'#title' => t('moives'),
);
}
break;
case 1:
for ($control=0 ; $control<$show_member ; $control++)
{
$form['show_music'] = array(
'#type' => 'item',
'#title' => t('music'),
);
}
break;
case 2:
for ($control=0 ; $control<$show_member ; $control++)
{
$form['show_books'] = array(
'#type' => 'item',
'#title' => t('books'),
);
}
break;
return $form;
}
?>
若能正常執行的話,$form['show_books']應該要印出6次,
$form['show_movies']要印出3次,而$form['show_music']要印出1次
但是,只印出$form['give_description']的page 2而已
請問一下,要怎麼從call function中將$form印出來呢?
麻煩各位前輩指教,謝謝
Re: 怎麼從call function中,將$form印出來?
<?php
function fbcf_poi_form_recommendation_page_two($form , &$form_state)
{
//中略
$form['give_description'] = array( // < ~~~~~ 這是其中一個 $form array
'#type' => 'item',
'#title' => t("page 2"),
);
for ($control_show=0 ; $control_show<3 ; $control_show++)
{
switch ($control_show)
{
case 0:
fbcb_poi_show_user_interest(6,2); // < ~~~~~~ 這是執行 Function
break;
case 1:
fbcb_poi_show_user_interest(3,0);
break;
case 2:
fbcb_poi_show_user_interest(1,1);
break;
} // end switch
} // end for
return $form; // < ~~~~~~~~ 這是回傳東西
}
?>
所以最少限度你也要像這樣吧
<?php
switch ($control_show)
{
case 0:
$form_array= fbcb_poi_show_user_interest(6,2);
$form= array_merge($form, $form_array);
break;
?>
Re: 怎麼從call function中,將$form印出來?
你會遇到這問題, 是因為你對PHP中的function和array的用法不熟悉
不是因為用Drupal開發才會遇到的問題
建議你至少把call by value, call by reference的概念搞清楚
還有像是array_merge這類常用的array相關function也搞清楚
不然老是卡在PHP的程式設計問題
會浪費你很多時間