Får inte riktigt AHAH funktionaliteten att fungera, men nästan...saken är att den path (#ahah['path']) som jag angett returnerar ju en hel sida och inte bara en delmängd html eller text. Hur gör man för att bara returnera det som funktionen för menu_call_back returnerar?
Som test har jag lagt till en dummy checkbox till loginformuläret och på sidan finns en div med id 'myahahdiv'.
Min hook_form_alter:
function minmodul_form_alter(&$form, $form_state, $form_id) {
if (in_array($form_id, array('user_login_block', 'user_login' ))) {
$form['foo'] = array(
'#type' => 'checkbox',
'#title' => 'En testcheckbox',
'#return_value' => 'ok',
'#ahah' => array(
'event' => 'click',
'path' => 'testing/ahah',
'wrapper' => 'myahahdiv'
)
);
}
}
Min hook_menu:
function minmodul_menu() {
$items['testing/ahah'] = array(
'title' => t('Ahah Ajax testingpage'),
'page callback' => 'dofoo',
'type' => MENU_CALLBACK,
'access callback' => 'checkacc'
);
return $items;
}
Och funktionerna dofoo() och checkacc():
function checkacc() {
return TRUE;
}
function dofoo() {
return "Tjohejsan...";
}
Mitt önskade resultat är alltså att jag bara vill få ut "Tjohejsan" i min DIV "myahahdiv" när jag klickar på checkboxen.
Simpelt säkert men vad har jag missat?

Comments
Istället för att
Istället för att ange:
<?phpreturn "Tjohejsan...";
?>
Så skriver du:
<?phpprint drupal_to_js(array('status' => TRUE, 'data' => 'Tjohejsan...'));
exit;
?>
Sweet
Tack! Som sagt, det var simpelt men som nybörjare tar det tid att hitta dessa små ting. Inte alltid lätt tycker jag att hitta exempelkod och bra förklaringar på hur saker fungerar på api.drupal.org...
Mer...
Vid klick på checkboxen, hur gör jag för att skicka med om checkboxen är iklickad eller ej?
Jag vill alltså i min dofoo() kolla om checkboxen blev iklickad eller ej och ge tillbaka olika svar i så fall.
Du kollar i $_POST - hela
Du kollar i $_POST - hela formuläret submittas till AHAH-funktionen
Och...
Ah ok, ja då funkar det. En sak till då, eftersom checkboxen laddar om sig vid klicket så är den då inte iklickad när den omladdad. Jag får ju värdet via $_POST helt ok som jag vill för att just i klickögonblicket är den iklickad, MEN eftersom checkboxen även laddar om sig så förblir den inte iklickad. Trodde inte att checkboxen behövde laddas om för att värdet skulle postas..?!
Hoppas du förstår vad jag menar...