As the question says, im not clear on how to go about adding new input fields depending on values of certain fields in the form.
I got as far as setting a callback and a wrapper, but i just can’t seem to rebuild the form, i can do basic returns of values from the callback, but that’s about it.
If anyone could show me a clean, simple way where i could go from, that would be great!
<?php //Create raffle form function raffle_create_form($form, &$form_state) { //Basic raffle info $form['raf_raffle_name'] = array( '#type' => "textfield", "#prefix" => "<h5>Raffle information</h5><hr>", "#title" => "Raffle Name:", "#required" => TRUE ); $form['raf_allowed_number'] = array( '#type' => "textfield", "#title" => "Number of allowed members", "#required" => TRUE, '#element_validate' => array('element_validate_number') ); $form['raf_start_now'] = array( "#type" => "checkbox", "#title" => "Start raffle now?" ); $form['raf_end_date'] = array( "#type" => "date", "#title" => "When to close this raffle?", "#required" => TRUE ); $form['raf_prize_type'] = array( '#type' => "select", "#options" => array('gift' => 'Steam Gift', 'hardware' => 'Gaming peripherals'), "#title" => "Prize type", "#ajax" => array( 'callback' => 'raffle_create_form_type_steam', 'wrapper' => 'steam_options', ), ); if(isset($form_state['values']['raf_prize_type'])) { $form['raf_steam_options'] = array( '#type' => 'textfield', '#title' => 'Added div', '#prefix' => '<div id="steam_options">', '#suffix' => '</div>' ); $form['raf_steam_options']['#description'] = 'configure some steamy steam steam'; } $form['raf_prize_name'] = array( '#type' => "textfield", "#title" => "Prize name", '#prefix' => '<div id="steam options"></div>', ); $form['raf_prize_about'] = array( '#type' => "textarea", "#resizeable" => true, "#title" => "Prize description" ); $form['raf_prize_thumb'] = array( '#type' => "file", "#title" => "Prize thumbnail" ); $form['raf_prize_link'] = array( '#type' => 'textfield', '#title' => "Link to product" ); $form['raf_raffle_create'] = array( '#type' => 'submit', '#value' => "Create Raffle", ); $form['#submit'][] = 'raffle_create_form_submit'; return $form; } function raffle_create_form_validate($form, &$form_state) { } function raffle_create_form_submit($form, &$form_state) { dsm('i printed'); } function raffle_create_form_type_steam($form, &$form_state) { dms('hi'); return $form['raf_steam_options']; }