Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 642321
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T21:09:30+00:00 2026-05-13T21:09:30+00:00

I have a select list I’ve created in a form alter, however, when I

  • 0

I have a select list I’ve created in a form alter, however, when I select an option and submit the value, only the first digit gets stored in the database. I know this has something to do with how the array is formatted, but I can’t seem to get it to submit properly.

function addSR_form_service_request_node_form_alter(&$form, $form_state) {
 $form['field_sr_account'] = array( '#weight' => '-50',
                                    '#type' => 'select', 
                                    '#title' => 'Select which account',
                                    '#options' => addSR_getMultiple());

 //Custom submit handler    
 $form['#submit'][] = 'addSR_submit_function';
 }

 function addSR_submit_function{
  $form_state['values']['field_sr_account'] = array('0' => array('value' => $form['#field_sr_account']));

Below is the function that returns the associative array. It is returning the proper options, as I can view the correct value/option in the HTML source when the page loads

//The values returned are not the problem, however, the format of the array could be..
    function addSR_getMultiple(){
           $return = array();
           $return['one'] = 'Choice1'
           $return['two'] = 'Choice2'

           return $return;
         }

Update:

Drupal 6: Only inserting first character of value to MySQL

I had a similar issue with the same field. However, in that case, I knew the value I wanted to submit, and I was able to assign the value to the field in the form alter, before the form was submitted. The difference with this issue, is that I don’t know the value of the field until it is submitted, so I can’t “assign” it in the form alter. How can I assign it the same way in the submit handler.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T21:09:30+00:00Added an answer on May 13, 2026 at 9:09 pm

    Edit after question update (and discovery of root problem within the linked separate question):

    As you are trying to manipulate CCK fields, and those have pretty special handling mechanisms compared to ‘standard’ Drupal FAPI form elements, you should probably read up on CCK form handling in general, and hook_form_alter() and CCK fields and CCK hooks in particular. Glancing at those documentations (and the other CCK articles linked in the left sidebar), it looks like there should be a straight forward solution to your problem, but it might require some digging.

    As a potential ‘quick fix’, you could try keeping your current approach, and adjust the submitted value on validation, somewhat like so:

    function addSR_form_service_request_node_form_alter(&$form, $form_state) {
      $form['field_sr_account'] = array(
        '#weight' => '-50',
        '#type' => 'select', 
        '#title' => 'Select which account',
        '#options' => addSR_getMultiple()
      );
    
      // Add custom validation handler    
      $form['#validate'][] = 'addSR_validate_function';
    }
    
    function addSR_validate_function (&$form, &$form_state) {
      // Assemble result array as expected by CCK submit handler
      $result = array();
      $result[0] = array();
      $result[0]['value'] = $form_state['values']['field_sr_account'];
      // Set this value in the form results
      form_set_value($form['field_sr_account'], $result, $form_state);
    }
    

    NOTE: This is untested code, and I have no idea if it will work, given that CCK will do some stuff within the validation phase as well. The clean way would surely be to understand the CCK form processing workflow first, and manipulating it accordingly afterward.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.