2

is there a module that can set a value of a field which depends on the value of another field first? I know i can do it via js, but was wondering if something was out there already. conditional field module doesnt work in my case as it dosent set the value depending on the result of another.

example: I am creating a basic page and I have a select box field with the following: white/black/red. when i select red, i want the body to be filled in with 'yes' and if its black i want the body to be filled in with 'no'.

  • "You may draw on anything available to Drupal, including other fields" - how this does not work for you? – Mołot Jun 20 '13 at 12:44
  • oh i forgot to mention im talking about the content creation page. – Patoshi パトシ Jun 20 '13 at 12:47
  • No there isn't a module that can arbitrarily set the value of any field based on the contents of another inside an arbitrary, undefined context. Such a thing would be too difficult to implement, and impossible to use effectively. If you need something that complex it's time to pull out the custom modules :) – Clive Jun 20 '13 at 12:48
  • And? It works for me on nodes all right. What's your problem again? You want to narrow choices in select Y based on what got selected in field Z? Or what? – Mołot Jun 20 '13 at 12:48
  • when something is selected in field Y it should auto input a string into field Z. maybe a quick js snippet would just do it. – Patoshi パトシ Jun 20 '13 at 12:52
0

I guess you need to check on the fields you set as dependant and dependee! In your case the body field should be the dependant and the selection field should be dependee.

Hope it helps!

| improve this answer | |
1

No other module available apart from conditional field, you need to create your own module with hook form_alter() and use some code like

<?php
function wishlist_status_form($form_state) {
$form['status'] = array(
    '#type' => 'textfield',
    '#title' => 'Status',
    '#suffix' => '<div id="my-wrapper"></div>',
  );

$form['ajax-submit'] = array(
    '#type' => 'submit',
    '#ajax' => array(
        'callback' => 'wishlist_status_change',
        'wrapper' => 'my-wrapper',
    ),
    '#value' => t('Save'),
  );
return $form;
}

function wishlist_status_change($form, $form_state) {
    dpm($form_state, 'state callback');
    return 'test';
}
?>
| improve this answer | |
0

It might be difficult to change the value of a field without some coding. But it if you just want to store the value based on the value of some other field you should take a look at Computed Field

| improve this answer | |
0

Perhaps you can use the Rules module and create 2 rules.

  • Event: After saving new content.
  • Condition:

    1. Entity has field. Parameter: Entity: [node], Field: field_colours (Or whatever your field is called.)

    2. Data comparison. Parameter: Data to compare: [node:field-colours], Data value: Red

  • Actions: Set a data value. Parameter: Data: [node:field-body], Value: Yes

You can create a similar rule for 'black'.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.