AHAH fungerar nästan...

Events happening in the community are now at Drupal community events on www.drupal.org.
persyl's picture

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

voxpelli's picture

Istället för att ange:

<?php
return "Tjohejsan...";
?>

Så skriver du:

<?php
 
print drupal_to_js(array('status' => TRUE, 'data' => 'Tjohejsan...'));
  exit;
?>

Sweet

persyl's picture

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...

persyl's picture

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

voxpelli's picture

Du kollar i $_POST - hela formuläret submittas till AHAH-funktionen

Och...

persyl's picture

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...

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week