Hi, ich hoffe mir kann hier jemand weiterhelfen. Und zwar habe ich ein Plugin mit einem eigenen Controller geschrieben, welcher 2 Actions hat. Die Standartaction wird ja beim Seitenaufruf geladen, und die zweite Action soll in Javascript über einen AjaxCall aufgerufen werden. Kann mir da vielleicht jemand weiterhelfen wie ich das angehen muss? Hier mein Aktueller Code: public function indexAction() { $sql = "SELECT Description, TypeId FROM xxxx"; $result = Shopware()-\>Db()-\>fetchAll($sql); $this-\>View()-\>loadTemplate(\_\_DIR\_\_."/../../Views/frontend/plugins/index.tpl"); $this-\>View()-\>modes = $result; $this-\>View()-\>anbieter = array(); } public function getAnbieterAction($typeId) { return "hallo"; // $sql = "SELECT Name, Id FROM xxxx WHERE Type = ?"; // $result = Shopware()-\>Db()-\>fetchRow($sql, array($typeId)); // // $this-\>View()-\>anbieter = $result; }
Das Javascript: function onModeSelected() { var id = $("#modeId").val(); if(id != 0) { $("#anbieterIdSelection").show(); $.ajax( { type: "POST", url: "http://xxxx/kuendigung/getAnbieter/" + id, }) .done(function( msg ) { //console.log(msg); alert(msg); }); } else { $("#anbieterIdSelection").hide(); $("#vertragskuendigung").hide(); } }
Kann mir vielleicht jemand nen Ansatz nennen, wie ich das ganze richtig gestalten muss? Danke schon mal im Vorraus. Lg Maliko
So wie ich das sehe, stimmt Dein Controller schon, den Parameter würde ich allerdings so an die Controller Action übergeben. Auf den Fall musst dem dem Controller noch mitteilen, dass er die Action nicht rendern soll. public function getDeineaction() { Shopware()-\>Plugins()-\>Controller()-\>ViewRenderer()-\>setNoRender(); $id = $this-\>Request()-\>getParam('id');