I have not used form values in this way
before and am unsure if they will work this way. Typically $form_state[‘storage’]
is where you might place these values that are part the form that may be
modified by
From:
support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of Kamal Palei
Sent: Sunday, September 09, 2012
8:44 PM
To:
Subject: [support] Drupal 7
AHAH/AJAX issue
Hi List
I am trying to learn
I want to have a simple questionnaire form.
Where I will have a single textfield.
In that text field one will type a question category, and if he wants
to type more question categories, user need to click a button
"Add More Categories".
Please see link http://www.netcloudsystems.com/?q=questionnaire/form/manage
The whole source code is at the end of this email. When
I am trying to manage that using a variable "$all_categories"
and form element $form['all_categories'] (of type value).
I tried many options, always I find $all_categories value is
1. So I am unable to add more textfields.
My observation is whatever I set in
Kindly guide me what I am missing.
Best Regards
Kamal
NECS,
<?php
function questionnaire_menu() {
$items = array();
$items['questionnaire/form/manage'] =
array(
'title' => t('Manage questions'),
'page callback' =>
'questionnaire_form',
'access arguments' =>
array('question manage'),
'type' => MENU_SUGGESTED_ITEM,
);
return $items;
}
function questionnaire_permission()
{
return array(
'question manage' => array(
'title' => t('Question
management'),
'description' =>
t('Provides question management capability'),
),
);
}
function questionnaire_form()
{
return
drupal_get_form('questionnaire_my_form');
}
function questionnaire_my_form($form,
&$form_state)
{
$form_state['cache'] = TRUE;
$all_categories =
!empty($form_state['values']['all_categories']) ?
$form_state['values']['all_categories'] : 1;
$form['all_categories'] = array(
'#type' => 'value',
'#default_value' =>
$all_categories,
'#value' =>
$all_categories);
// The prefix/suffix
provide the div that we're replacing, named by
// #
$form['category_fieldset'] =
array(
'#title' => t("Questions Categories"),
'#prefix' => '<div id="category-div">',
'#suffix' => '</div>',
'#type' => 'fieldset',
'#description' => t('Please enter the question categories'),
);
for ($i=1; $i<= $all_categories ; $i++)
{
$key = 'ctg'
. $i;
$form['category_fieldset']['category'][$key] =
array(
'#type' => 'textfield',
'#title' => "Question category $i",
);
}
$form['category_fieldset']['add_more_category']
= array(
'#type' => 'submit',
'#value' => t('Add More Categories'),
'#
'callback' => 'questionnaire_category_callback',
'wrapper' => 'category-div',
'method' => 'replace',
'effect' => 'fade',
),
);
$form['submit'] =
array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
function
questionnaire_category_callback($form, &$form_state)
{
$form_state['values']['all_categories'] =
$form_state['values']['all_categories'] + 1;
return $form['category_fieldset'];
}
?>