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));
}

Reply via email to