Ajax und Jquery in Drupal 7

am 28.07.2013 - 11:42 Uhr in
Hallo Drupaler,
Ich hänge gerade fest bei meiner Modulentwicklung. Ich möchte nämlich einen Ajax Request in meinem Modul ausführen. Da ich das noch nie vorher gemacht habe, habe ich mir nun dutzende Tutorials und Dokumentationen angeschaut, aber ich finde einfach nicht meinen Fehler. Vielleicht kann mir hier jemand helfen?
Mein Code in der .module-Datei:
function meintestmodul_menu() {
$items = array();
$items[additem_ajax] = array(
'page callback' => 'meintestmodul_database_stuff',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function meintestmodul_database_stuff() {
drupal_json_output('hallo');
exit();
}
Und mein jquery dazu sieht so aus:
function eingang_submitactions (income_number, material_id){
$.ajax({
type: "POST",
url: 'additem_ajax',
data: {
material_id : material_id,
income_number : income_number
},
dataType: "json",
success: function (data) {
console.log("check");
console.log(data);
},
error: function (jqxhr,textStatus,errorThrown) {
console.log("fail");
console.log(jqxhr , textStatus , errorThrown);
}
});
}
Wenn ich den Ajax-Request aufrufe, scheint er die Funktion im PHP auch zu finden, ich bekomme aber immer nur den Error-Alert. Als Fehler bekomme ich dann "XMLHttpRequest {statusText: "", status: 0, response: "", responseType: "", responseXML: null…} "error" undefined ". Woran kann das liegen?
Ich würde mich sehr über Hilfe dazu freuen.
- Anmelden oder Registrieren um Kommentare zu schreiben
In der Form habe ich das noch
am 28.07.2013 - 15:24 Uhr
In der Form habe ich das noch nicht eingesetzt, aber ich sehe zwei prinzipielle Fehler im Code:
Beste Grüße
Werner
Erstmal danke für die schnelle Antwort
am 28.07.2013 - 16:16 Uhr
Hallo Werner,
erstmal danke für die schnelle Antwort. Erstere deiner beiden Anmerkungen habe ich gleich mal geändert und ausprobiert, leider hat sich dadurch nichts geändert. Es scheint, als würde die Funktion im PHP gar nicht gefunden/aufgerufen werden. Denn wenn ich sie lösche kommt immer noch die gleiche Fehlermeldung.
Was das $ angeht, ich habe in meinem Jquery-Code ein jQuery(document).ready drumherum. Da die Fehlermeldung aus dem Request in der Konsole erscheint, gehe ich auch davon aus, dass es nicht am Jquery ansich hängt.
Hast Du den Menu-Cache (oder
am 28.07.2013 - 16:32 Uhr
Hast Du den Menu-Cache (oder alle Caches) mal gelöscht? Der Menü-Baum wird nämlich nur selten neu aufgebaut.
Beste Grüße
Werner
Ja, ich habe das alles
am 12.08.2013 - 13:25 Uhr
Ja, ich habe das alles versucht und einiges mehr. Leider wollte es einfach nicht funktionieren. Ich habe die Sache inzwischen anders gelöst. Da es bei mir um ein Formular ging, konnte ich die Funktionalität auch über eine eigene submit-function lösen. Ich denke das ist auch weitaus eleganter, als wenn ich das mit Ajax gemacht hätte.