$form_state['values'] AJAX I have the following form: 
Displayed at Page load

$form['platform'] = array(
  '#type' =&gt; 'select',
  '#title' =&gt; t('Select a Platform'),
  '#options' =&gt; array(
    0 =&gt; t('- Select -')) + $options,
  '#default_value' =&gt;  0,
  '#required' =&gt; TRUE,
  '#ajax' =&gt; array(
    'callback' =&gt; 'ajax_select_callback',
    'wrapper' =&gt; 'replace_model_div',
    'effect' =&gt; 'slide',
   ),
);


I'm trying to pull out the $form_state['values'] to determine if another select field should be shown. However I'm not sure how this will ever get called without a submit function.

To be Displayed after option is selected

 if (isset($form_state['values']['platform'])) {
 $platform_value = $form_state['values']['platform'];
 $sqlmodel = "SELECT tid, name FROM {taxonomy_term_data} WHERE vid = $platform_value";
 $result = db_query($sqlmodel);
 $options = array();
   foreach ($result as $row) {
     $model_options[$row-&gt;vid] = t($row-&gt;name);
    }

$form['model_wrapper'] = array(
  '#type' =&gt; 'select',
  '#title' =&gt; t('Select a Model'),
  '#options' =&gt; $model_options,
  '#options' =&gt; t('$platform_value'),
  '#prefix' =&gt; '&lt;div id="replace_model_div"&gt;',
  '#suffix' =&gt; '&lt;/div&gt;',
);
}
return $form;
}
function ajax_select_callback($form, $form_state) {
  return $form['model_wrapper'];
}


If I am understanding AJAX properly even though on a select change my AJAX call will happen to render the model_wrapper. There is nothing in the AJAX call that will re-evaluate the if (isset function, and as such the model_wrapper section will never display.

Full story and objective: AJAX dependent select
The reason it's not working is because the &lt;div&gt; with an ID of replace_model_div doesn't exist when the form is first built. So when the AJAX replace happens, there's no target container to append it to.

All you need to do is re-structure you form slightly (and remove the second #options array added to the second select):

$form['model_wrapper_container'] = array(
  '#type' =&gt; 'container',
  '#prefix' =&gt; '&lt;div id="replace_model_div"&gt;',
  '#suffix' =&gt; '&lt;/div&gt;',
);

if (isset($form_state['values']['platform'])) {
  $platform_value = $form_state['values']['platform'];
  $sqlmodel = "SELECT tid, name FROM {taxonomy_term_data} WHERE vid = $platform_value";
  $result = db_query($sqlmodel);
  $model_options = array();
  foreach ($result as $row) {
    $model_options[$row-&gt;vid] = t($row-&gt;name);
  }

  $form['model_wrapper_container']['model_wrapper'] = array(
    '#type' =&gt; 'select',
    '#title' =&gt; t('Select a Model'),
    '#options' =&gt; $model_options,
  );
}


And a small change to the callback:

function ajax_select_callback($form, $form_state) {
  return $form['model_wrapper_container'];
}