简体   繁体   中英

How to update the fields using custom form in drupal7

I am having three fields: First name, Last name and Year of birth. In code I am easily inserting into database when I press submit button, so I want to update these fields when I want to click on Edit button. Please anyone help me to code this update to put the inserted data in a database or please post code.

<?php
function my_module_menu() {

  $items = array();
  $items['my_module/form'] = array(
    'title' => 'My form',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('my_module_my_form'),
    'access arguments' => array('access content'),
    'description' => 'My form',
    'type' => MENU_CALLBACK,
  );
  $items['my_module/edit'] = array(
    'title' => t('Edit Name'),
    'page callback' => 'drupal_get_form',
    'page arguments' => array('my_module_edit'),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
return $items;
}

function my_module_my_form($form_state) {
  $form['first_name'] = array(
  '#type' => 'textfield',
  '#title' => t('First name'),
  '#required' => TRUE, // Added
  );
 $form['last_name'] = array(
  '#type' => 'textfield',
  '#title' => t('Last name'),
  '#required' => TRUE, // Added
 );
  $form['year_of_birth'] = array(
  '#type' => 'textfield',
  '#title' => ('Year of birth'),
  '#description' => 'Format is "YYYY"',
 ); 

  // Adds a simple submit button that refreshes the form and clears its contents -- this is the default behavior for forms.
 $form['submit'] = array(
   '#type' => 'submit',
   '#value' => 'Submit',
 );

function  my_module_edit($form, &$form_submit){

$form['Edit'] = array(
   '#type' => 'Edit',
   '#value' => 'Edit',
 );  

return $form; 

}
function my_module_my_form_submit($form, &$form_state){
  $firstName = $form_state['values']['fname'];
  $lastName=$form_state['value']['lname'];
  $yearofbirth = $form_state['values']['yearOfbirth'];


$query ="INSERT INTO `slideshow`.`mymoduledb`(`first_name`,`last_name`,`year_of_birth`) VALUES ('{$firstName}','{$lastName}','{$yearofbirth}')";
  //$result=db_query($query);

  if ($success = db_query($query)) {
    // Tell the user that the employee has been saved.
    drupal_set_message(t(' has been saved.'));
  }else{ // If there's an error, $success will evaluate to FALSE, and the following code will execute.
    drupal_set_message(t('There was an error saving your data. Please try again.'));
      }
   }
}

Inorder to edit form field you can reuse the form and set the default value field '#default_value' storing the form submitted data fetched from database using the respective uniques ids.Refer the link for sample code.

https://www.drupal.org/node/2069383

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM