成功了,在这里找到了一些很好的例子:
http://www.kristen.org/content/drupal-ahah-form-examples
function filiais_editar_form($form_state) {
//
// AHAH Helper stuff
//
$form = array();
ahah_helper_register($form, $form_state);
$form['editar'] = array(
'#type' => 'fieldset',
'#prefix' => '<div id="editar-wrapper">',
'#suffix' => '</div>',
'#tree' => TRUE,
);
$query_result = db_query("SELECT DISTINCT ON (cidade) cidade, id_filial
FROM filial_pf");
$cidades = array();
while($row = db_fetch_object($query_result))
$cidades[$row->id_filial] = $row->id_filial . ' : ' . $row->cidade;
if (!isset($form_state['values']['editar']['filial']))
$choice = 0;
else
$choice = $form_state['values']['editar']['filial'];
$form['editar']['filial'] = array(
'#type' => 'radios',
'#title' => "Escolha a filial que deseja editar",
'#options' => $cidades,
'#default_value' => $choice,
'#ahah' => array(
'event' => 'change',
'path' => ahah_helper_path(array('editar')),
'wrapper' => 'editar-wrapper',
'method' => 'replace',
),
);
$fid = $choice;
if($fid != 0)
{
$query_result = db_query("SELECT cidade, endereco, estado
FROM filial_pf
WHERE id_filial = '%d'", $fid);
$row = db_fetch_object($query_result);
$cidade = $row->cidade;
$estado = $row->estado;
$endereco = $row->endereco;
}
else
{
$cidade = '';
$estado = '';
$endereco = '';
}
$form['editar']['cidade'] = array(
'#type' => 'textfield',
'#title' => "Nova Cidade da Filial",
'#size' => 18,
'#maxlength' => 18,
'#required' => TRUE,
'#default_value' => $cidade,
);
$estados = array(
"AC" => "AC",
"AL" => "AL",
"AP" => "AP",
"AM" => "AM",
"BA" => "BA",
"CE" => "CE",
"DF" => "DF",
"ES" => "ES",
"GO" => "GO",
"MA" => "MA",
"MT" => "MT",
"MS" => "MS",
"MG" => "MG",
"PA" => "PA",
"PB" => "PB",
"PR" => "PR",
"PE" => "PE",
"PI" => "PI",
"RJ" => "RJ",
"RN" => "RN",
"RS" => "RS",
"RO" => "RO",
"RR" => "RR",
"SC" => "SC",
"SP" => "SP",
"SE" => "SE",
"TO" => "TO");
$form['editar']['estado'] = array(
'#type' => 'select',
'#title' => "Estado",
'#options' => $estados,
'#required' => TRUE,
'#default_value' => $estado,
);
$form['editar']['endereco'] = array(
'#type' => 'textarea',
'#title' => "Novo Endereço da Filial",
'#size' => 70,
'#maxlength' => 140,
'#required' => TRUE,
'#default_value' => $endereco,
);
$form['editar']['salvar'] = array(
'#type' => 'submit',
'#value' => "Salvar",
);
$form['#redirect'] = '';
return $form;
}