This part of the code is not retaining the previous value.....
$form['characteristics']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<table class="table2"><tr><td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['characteristics']) ? $form_state['values']['characteristics'] : '', '#parents' => array('rows', $delta, 'chars'), ); $form['description']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['description']) ? $form_state['values']['description'] : '', '#parents' => array('rows', $delta, 'descr'), ); $form['minimum']=array( '#type' => 'textfield', '#size'=> 20, // '#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['minimum']) ? $form_state['values']['minimum'] : '', '#parents' => array('rows', $delta, 'min'), ); $form['maximum']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td></tr></table>', '#default_value' => !empty($form_state['values']['maximum']) ? $form_state['values']['maximum'] : '', '#parents' => array('rows', $delta, 'max'), ); -- *Cheers* * *
<?php // $Id$ /** * @file * * The pavi module. */ /** * Implements hook_help(). */ function pavi_help($path, $arg) { $output = ''; switch ($path) { case "admin/help#pavi": $output = '<p>' . t("Displays the products") . '</p>'; break; } return $output; } /** * Implements hook_perm(). */ /* function pavi_perm() { return array( 'access pavi', 'edit pavi', 'administer pavi', 'add to pavi', ); } */ function pavi_menu(){ $items = array(); $items['pavi'] = array( 'title' => t('PRODUCTS'), 'page callback' => 'drupal_get_form', 'page arguments'=>array('pavi_form'), 'access arguments' => array('access pavi'), 'type' => MENU_NORMAL_ITEM, ); $items['pavi/js']=array( 'title' => 'Javascript Choice Form', 'page callback' => 'drupal_get_form', 'page arguments'=>array('pavi_rows_js'), 'access arguments' => array('access pavi'), 'type'=> MENU_CALLBACK, ); return $items; } function pavi_form(&$form_state) { $form['enteredfrom']=array( '#type'=>'textfield', '#title'=>'', '#default_value' => !empty($form_state['values']['enteredfrom']) ? $form_state['values']['enteredfrom'] : '', '#prefix'=>'<tr><td class="labeltext">ENTERED FROM</td><td class="textbox">', '#suffix'=>'</td></tr></table>', ); // chars headr if (isset($form_state['rows_count'])) { $rows_count = $form_state['rows_count']; } else { $rows_count = 1; } $form['rows_wrapper'] = array( '#title' => t("Characteristics"), '#prefix' => '<div id="rows-wrapper">', '#suffix' => '</div>', '#type' => 'fieldset', '#tree'=> FALSE, ); $form ['rows_wrapper']['characteristicshead']=array( '#type'=>'hidden', '#title'=>'', '#prefix'=>'<table class="table2"><tr><th class="table2head">CHARACTERISTICS', '#suffix'=>'</th>', ); $form['rows_wrapper']['descriptionhead']=array( '#type'=>'hidden', '#title'=>'', '#prefix'=>'<th class="table2head">DESCRIPTION', '#suffix'=>'</th>', ); $form['rows_wrapper']['minimumhead']=array( '#type'=>'hidden', '#title'=>'', '#prefix'=>'<th class="table2head">MINIMUM</th>', '#suffix'=>'</th>', ); $form['rows_wrapper']['maximumhead']=array( '#type'=>'hidden', '#title'=>'', '#prefix'=>'<th class="table2head">MAXIMUM', '#suffix'=>'</th></tr></table>', ); $form['rows_wrapper']['rows']=array( '#prefix' => '<div id="rows-choices"><table class="table2">', '#suffix' => '</table></div>', ); for ($delta = 0; $delta <$rows_count; $delta++) { $chars= $form_state['values']['rows_wrapper']['rows'][$delta]['characteristics'] ; $descr= $form_state['values']['rows_wrapper']['rows'][$delta]['description']; $min=$form_state['values']['rows_wrapper']['rows'][$delta]['minimum'] ; $max=$form_state['values']['rows_wrapper']['rows'][$delta]['maximum']; $form['rows_wrapper']['rows'][$delta]= _table_rows_form($delta,$chars,$descr,$min,$max,&$form_state); } $form['rows_wrapper']['pavi_add_more']= array( '#type' => 'submit', '#value' => t('More Rows'), '#description' => t(" click here to add more characteristics."), '#weight' => 1, '#submit' => array('pavi_add_more_rows_submit'), // If no javascript action. '#ahah' => array( 'path' => 'pavi/js', 'wrapper' => 'rows-choices', 'effect' => 'fade', ), ); $form['submit'] = array( '#type' => 'submit', '#value' => t('ADD TO TABLE') ); return $form; } function pavi_add_more_rows_submit($form, &$form_state) { //node_form_submit_build_node($form, $form_state); if ($form_state['values']['pavi_add_more']) { $n = $_GET['q'] == 'pavi/js' ? 1 : 5; $form_state['rows_count'] = count($form_state['values']['rows']) + $n; } } function _table_rows_form($delta,$chars,$descr,$min,$max,&$form_state) { $form=array( '#tree'=>TRUE, ); //rows $form['characteristics']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<table class="table2"><tr><td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['characteristics']) ? $form_state['values']['characteristics'] : '', '#parents' => array('rows', $delta, 'chars'), ); $form['description']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['description']) ? $form_state['values']['description'] : '', '#parents' => array('rows', $delta, 'descr'), ); $form['minimum']=array( '#type' => 'textfield', '#size'=> 20, // '#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td>', '#default_value' => !empty($form_state['values']['minimum']) ? $form_state['values']['minimum'] : '', '#parents' => array('rows', $delta, 'min'), ); $form['maximum']=array( '#type' => 'textfield', '#size'=> 20, //'#title' => t('rows @n', array('@n' => ($delta + 1))), '#prefix'=>'<td class="table2row">', '#suffix'=>'</td></tr></table>', '#default_value' => !empty($form_state['values']['maximum']) ? $form_state['values']['maximum'] : '', '#parents' => array('rows', $delta, 'max'), ); return $form; } function pavi_rows_js() { include_once 'modules/node/node.pages.inc'; $form_state = array('storage' => NULL, 'submitted' => FALSE); $form_build_id = $_POST['form_build_id']; $form = form_get_cache($form_build_id, $form_state); $args = $form['#parameters']; $form_id = array_shift($args); $form['#redirect'] = FALSE; $form['#post'] = $_POST; $form['#programmed'] = FALSE; $form_state['post'] = $_POST; drupal_process_form($form_id, $form, $form_state); $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); $rows_form = $form['rows_wrapper']['rows']; unset($rows_form['#prefix'], $rows_form['#suffix']); // Prevent duplicate wrappers. $output = drupal_render($rows_form); print drupal_json(array('status' => TRUE, 'data' => $output)); }