Funktion mit Javascript triggern?
am 05.05.2013 - 00:48 Uhr in
Hallo Freunde,
seit einigen Tagen beschäftige ich mich (endlich) mit D7 und hier gibt es die Funktion field_attach_update http://api.drupal.org/api/drupal/modules!field!field.attach.inc/function/field_attach_update/7
Darüber kann man Felder updaten ohne node_save zu nutzen.
Ich möchte diese Funktion nun auslösen wenn in einer Form eine Checkbox verändert wurde. Die Checkbox enthält 4 Werte und sobald der User einen anderen Wert auswählt, soll field_attach_update per Javascript ausgelöst werden.
Ich weiß wie man mit jQuery die Checkboxänderung abfängt aber leider nicht wie man danach mit Javascript/jQuery die Funktion field_attach_update (oder andere Drupal-Funktionen) ausführt.
Kann mir von euch vielleicht jemand einen Denkanstoß geben?
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo,der eigentliche Dreh
am 05.05.2013 - 11:18 Uhr
Hallo,
der eigentliche Dreh bei der Geschichte wäre über Ajax einen Request auf ein Modul zu machen:
also nur ganz ungefähr, eine grobe Skizze:
im js:
..........
submitHandler: function(e) {
..............
$.ajax({
type: 'POST',
url: Drupal.settings.basePath + 'saveMynode/ajax',
dataType: 'json',
data: ajax_data,
success: self.successHandler
});
und in der Module-Datei:
function saveMynode_menu() {
$items['contenteditable/ajax'] = array(
'title' => t('Savemynode AJAX'),
'type' => MENU_CALLBACK,
'page callback' => 'saveMynode_ajax',
'access arguments' => array('access content'),
);
return $items;
}
function saveMynode_ajax () {
$field_value = $_POST['field_value'];
$nid = (int)$_POST['nid'];
$field_name = $_POST['fieldname'];
$node = node_load($nid);
$node->{$field_name} = array('und'=>array(array('value'=>$field_value)));
node_save($node);
$json_output = array();
$json_output['nid'] = $nid;
$json_output['fieldname'] = $field_name;
$json_output['msg'] = t('Your changes were saved.');
drupal_json_output($json_output);
}
ist hieraus: http://books.google.de/books?id=C7Tsdj0b_hIC&lpg=PA139&ots=6rqAir7ZKg&dq=execCommand(cmd%2C%20false%2C%20cmd%20Value)%3B%20drupal7&hl=de&pg=PP1#v=onepage&q=execCommand(cmd,%20false,%20cmd%20Value);%20drupal7&f=false
ab Seite 126...
Gruß
Christian
Don't code today what you can't debug tomorrow
Ariya Hidayat