from表单的简单练习

function my_form_menu() {
   $items['my/%/product'] = array(
    'title' => 'myproduct', 
    'page callback' = > 'productlist',
    'page arguments' => array(1),
    );
  return $items;
}

function productlist($arg){

  $form = array();
  $form = drupal_get_form('my_form');
  if (!empty($arg) {
    # code...
    if ($arg="all") {
      # code...
      $form+=drupal_get_from('all_product'); //
    }
  }
//公用一个submit
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Submit',
    '#validate' => array('my_form_validate'),
    '#submit' => array('my_form_submit'),
 
  );
  return $form;
}

function my_form($form,&$form_state){

	$form_default_values = variable_get('my_form','');

	$default_value = array();
 
  if(!empty($form_default_values))
  {
    print_r("expression");

    foreach ($form_default_values as $key => $value) {
    
      $default_value[$key] = isset($form_state['values'][$key]) ? $form_state['values'][$key] : (isset($form_default_values[$key]) ? $form_default_values[$key] : '');
    } 

  }

	$form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('name'),
    '#description' => t('name must !!'),
    '#default_value'=> isset($default_value['name']) ? $default_value['name'] : '',
    '#required' => TRUE,
  );

  $form['cardtype'] = array(
    '#type' => 'checkboxes',
    '#options' => array(
      'sfz'   => t('Shenfengzheng'),
      'psc' => t('huzhao'),
    ),
    '#title' => t('cardtype'),
    '#default_value'=> isset($default_value['cardtype']) ? $default_value['cardtype'] : '',

  );


  $form['shenfenzheng'] = array(
    '#type' => 'textfield',
    '#title' => t('shengfenzheng'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="cardtype[sfz]"]' => array('checked'=> TRUE),//当上级类型是checkboxes 时,这边用checked(true/false),
      ),
    ),
    '#default_value'=>isset($default_value['shenfenzheng']) ? $default_value['shenfenzheng'] : '',

  );

  $form['psc'] = array(
    '#type' => 'textfield',
    '#title' => t('huzhao'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="cardtype[psc]"]' => array('checked' => TRUE),//当上级类型是checkboxes 时,这边用checked (true/false),
      ),
    ),
   '#default_value'=>isset($default_value['psc']) ? $default_value['psc'] : '',
   );

  $form['sextype'] = array(
    '#type' => 'radios',
    '#options' => array(
      'man'   => t('man'),
      'woman' => t('woman'),
    ),
    '#title' => t('sex'),
    '#default_value'=>isset($default_value['sextype']) ? $default_value['sextype'] : '',
    );

  $form['man'] = array(
    '#type' => 'fieldset',
    '#title' => t('man'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
  );

  // High school information.
  $form['man']['dianying'] = array(
    '#type' => 'textfield',
    '#title' => t('dianying'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
    '#default_value'=>isset($default_value['dianying']) ? $default_value['dianying'] : '',
  );
   $form['man']['yundong'] = array(
    '#type' => 'checkboxes',
    '#options' => array(
      'zq'   => t('zuqiu'),
      'lq' => t('lanqiu'),
      ),
    '#title' => t('yundong'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'man'),
      ),
    ),
    '#default_value'=>isset($default_value['yundong']) ? $default_value['yundong'] : '',
  );

  $form['woman'] = array(
    '#type' => 'fieldset',
    '#title' => t('woman'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),

  );
  //#field_prefix, #field_suffix
    $form['woman']['huaxiao'] = array(
    '#type' => 'select',
    '#options' => (array(t('500'), t('1000'),t('5000'))),
    '#field_suffix'=>'元',
    '#title' => t('woman'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),
    '#default_value'=>isset($default_value['huaxiao']) ? $default_value['huaxiao'] : '',
  );

    $form['woman']['lixiang'] = array(
    '#type' => 'textarea',
    '#title' => t('lixiang'),
    '#states' => array(
      'visible' => array(   // action to take.
        ':input[name="sextype"]' => array('value' => 'woman'),
      ),
    ),
    '#default_value'=>isset($default_value['lixiang']) ? $default_value['lixiang'] : '',
  );
//表单元素提交图片按钮
  $form['image_submit'] = array(
    '#type' => 'image_button',  
  //图片按钮特有的#src属性,
    '#src' => drupal_get_path('module','contactus').'/images/button1-1.jpg',
    '#executes_submit_callback' => true,  //提交时是否执行回调函数,(false不执行,true执行)
  //使用这个按钮提交时,对应的提交处理函数为contactus_confirm_form_back
    '#submit' => array('contactus_confirm_form_back'), 
  //表单元素添加两个属性,onmouseout、onmouseover,为了在鼠标移到按钮上时,显示不同的图片效果
    '#attributes' =>array(
      'onmouseout' => "this.src='".base_path().drupal_get_path('module','mytest')."/images/button1-1.jpg'",
      'onmouseover' => "this.src='".base_path().drupal_get_path('module','mytest')."/images/button1-2.jpg'",
    ),  
  //为了便于控制image_button的外观,我们使用#prefix、#suffix为其添加了一个带有ID的div
    '#prefix' => '<div id="image-submit">',
    '#suffix' => '</div>',
  );
  return $form;
}
/**
 * 返回按钮对应的提交函数
 */
function contactus_confirm_form_back($form, &$form_state){
  //简单的重定向到首页
 $form_state['redirect'] = '<front>';
}
function my_form_validate($form, &$form_state) {
  dpm($form_state);
  

  $sfz=$form_state['values']['shenfenzheng'];
  $psc=$form_state['values']['psc'];
  $cardtype=$form_state['values']['cardtype'];


    if($cardtype['psc']==0)
    {
      $psc='';
    }
    if($cardtype['sfz']==0)
    {
      $sfz='';
    }  

}


function my_form_submit($form, &$form_state) {
  $myform = array(
    'name'=>$form_state['values']['name'],
    'cardtye'=>$form_state['values']['cardtype'] ,
    'shenfenzheng'=>$form_state['values']['shenfenzheng'],
    'dianying'=>$form_state['values']['dianying'],
    'psc'=>$form_state['values']['psc'],
    'sextype'=>$form_state['values']['sextype'],
    'yundong'=>$form_state['values']['yundong'],
    'huaxiao'=>$form_state['values']['huaxiao'],
    'lixiang'=>$form_state['values']['lixiang'],
  );
  variable_set('my_form',$myform);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值