Mam dziwną sytuację w aplikacji którą tworzę. Mam funkcje loadModule
function loadModule($this) {
var controllerName = $this.attr("data-controller-name");
var methodName = $this.attr("data-controller-method");
$(".main").load("/apps/kontrola/" + controllerName + "/" + methodName);
getLastSearches();
getUses();
$('.tooltip').remove();
$('.tooltips-last-search').tooltip({container: 'body'});
$('.tooltips-saved-search').tooltip({container: 'body'});
}
Używam jej w wiekszości odnośników podczas kliknięcia np tu:
<div class="reset-padding-left-right col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div style="word-wrap: break-word;" class="reset-padding-left-right col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div onclick="loadModule($(this))" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 reset-padding-left-right tooltips-last-search searches" data-controller-name="auction" data-controller-method="index?filters[users][0]=dsp" data-placement="top" data-html="true" data-toggle="tooltip" data-original-title="<div style="word-wrap: break-word;"><div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">Wszystkie filtry: </div>dsp(sprzedawcy);<br /></div>"><span class="search-filters">dsp<span class="search-filter-name">(sprzedawcy)</span></span> <span class="search-date">2016-06-19 12:56:56</span></div><span> | </span><span class="saveLastSearch" data-id-last-search="2" href="#">Zapamiętaj wyszukanie</span> </div>
</div>
Po kliknieciu w odośnik wywołuje odpowiedni route i następnie wyłapuję $_GET['filters'] i robie odpowiednie czynności:
Najpierw idę do indexu:
public function index() {
self::$MODULE_PART_ID = 1;
\Helpers\CommonHelper::setSessionKeyValue("MODULE_PART_ID", self::$MODULE_PART_ID);
return $this->renderFragment("index", array( "uses" => \Helpers\CommonHelper::getUnits($_SESSION["permanent_variables"]["userId"], self::$MODULE_ID)
));
}
Tutaj zwracam widok:
<?php $accesses = Helpers\CommonHelper::getAccessPolicyAndKontrolaRecentAccess($_SESSION["permanent_variables"]["userId"], $_SESSION["app_id"], $_SESSION["MODULE_ID"], $_SESSION["MODULE_PART_ID"]); ?>
<?php if ($accesses["status"] == false && $accesses["search"] == true): ?>
<?php include_component($accesses["method"], $accesses["component"]); ?>
<?php else: ?>
<div class="row
<?php echo \Helpers\CommonHelper
::getBootstrapClasses(12) ?>">
<h1 class="
<?php echo Helpers\CommonHelper
::getBootstrapClasses(8
); ?>">
<?php echo translate
("a_module_name"); ?></h1>
<div class="
<?php echo Helpers\CommonHelper
::getBootstrapClasses(4
); ?> usesContainer">
<span class="
<?php echo Helpers\CommonHelper
::getBootstrapClasses(8
); ?> float-right text-align-right">Pozostało kredytów: <label>
<?php echo $uses; ?><label></span>
</div>
<?php include_component("description", "auction"); ?>
</div>
<div class="row
<?php echo \Helpers\CommonHelper
::getBootstrapClasses(12) ?>">
<?php include_component("filters", "auction"); ?>
</div>
<div class="row
<?php echo \Helpers\CommonHelper
::getBootstrapClasses(12) ?>">
<?php include_component("buttons", "raportsDownloaded"); ?>
<div class="toggleColumnsButtonContainer
<?php echo Helpers\CommonHelper
::getBootstrapClassesWithOffset(4
); ?> <?php echo Helpers\CommonHelper
::getBootstrapClasses(4
); ?>">
<button class="btn
<?php echo Helpers\CommonHelper
::getBootstrapClasses(12
); ?> toggleColumnsButton">
<?php echo translate
("choice_columns"); ?></button>
</div>
<div class="containerChoiseColumnsFilter
<?php echo Helpers\CommonHelper
::getBootstrapClasses(12
); ?>">
<div id="columnsContainer" class="reset-padding-left-right
<?php echo Helpers\CommonHelper
::getBootstrapClasses(12
); ?>">
<?php include_component("datatableColumnsSelectorDatatable", "auction"); ?>
</div>
</div>
</div>
<?php include_component("datatable", "auction"); ?>
<div id="waitingTimeForFile">
<p>Orientacyjny czas generowania raportu: <span id="timeToWait"></span></p>
<p>Wszystkie raporty po wygenerowaniu dostępne są do pobrania z modułu <a href="#" id="raportsScroll">Raporty</a>.</p>
<p>Podczas generowania plików można korzystać z systemu.</p>
<p>Kliknij "X" aby zamknąć.</p>
</div>
<div class="modal fade" id="modal-auction-content" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php endif; ?>
Następnie wchodzę w component filters a tam mam:
<?php if (Helpers\CommonHelper::getAccessPolicy($_SESSION["app_id"], $_SESSION["MODULE_ID"], $_SESSION["MODULE_PART_ID"], 102)): ?>
<input type="hidden" id="total-records" value="0"/>
<div id='listContainer' class="
<?php echo Helpers\CommonHelper
::getBootstrapClasses(12
); ?>">
<table id="list" class="table table-bordered table-striped-col dataTable" cellspacing="0" width="100%" data-role="table">
<thead>
<tr>
<?php foreach ($tableTHEAD as $tableTHEADIndex => $tableTHEADValue): ?>
<th>
<?php echo translate
($tableTHEADValue); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<?php endif; ?>
<script>
var datatableName = "list";
var URL = '/apps/kontrola/auction/getResult';
var columns = [
{'data': 'title', 'class': "datatable-row-title"},
{'mData': 'item', "mRender": function (data, type, full) {
return "<a href='#' data-toggle='modal' data-target='#modal-auction-content' class='show-auction-modal-content' onclick='getAuctionsContent(" + data + ")'>" + data + "</a>";
}},
{'data': 'price'},
{'data': 'qty'},
{'mData': 'user', "mRender": function (data, type, full) {
return '<a href="#" class="searches" data-controller-method="index?filters[users][0]=' + data + '&filters[insideUserComparison]=true&filters[insideUserSummary]=false&filters[summary]=false&filters[comparison]=true" data-controller-name="allesuma"> ' + data + ' </a>';
}},
{'data': 'cat'},
{'data': 'startts'},
{'data': 'endts'}
];
var order = [];
<?php if (isset($_GET["filters"])): ?> URL_TMP = URL;
URL_TMP += "?insert=false";
getAjaxDatatable(datatableName, URL_TMP, columns, order, "auction");
URL_TMP = "";
<?php endif; ?>
</script>
Tutaj jak widać sprawdzam geta i wywołuję metodę getAjaxDatatable (tutaj wstawiam poprostu dane i url do datatable). Url przenosi do:
public function getResult() {
header('Content-Type: application/json; charset=utf-8'); self::$MODULE_PART_ID = 1;
\Helpers\CommonHelper::setSessionKeyValue("MODULE_PART_ID", self::$MODULE_PART_ID);
$setKontrolaRecent = \Helpers\CommonHelper::setKontrolaRecent($_SESSION["permanent_variables"]["userId"], self::$MODULE_ID, self::$MODULE_PART_ID, $_REQUEST["filters"], $_SESSION["app_id"]);
if ($setKontrolaRecent["status"] == false) {
return $this->renderJSON($setKontrolaRecent);
}
if ($_GET["insert"] == NULL) {
$filters["filters"] = $_REQUEST["filters"];
\LastSearches::insertLastSearch($filters, self::$MODULE_ID, self::$MODULE_ACTION_NAME_FRAMEWORK, "index");
}
$response = \datatable\Datatable::setTable($this->tableName)->getDatatable();
return $this->renderJSON($response);
}
I teraz problem polega na tym że kiedy loguję się do aplikacji pierwszy raz to gdy kliknę odnośnik to wszystko ładnie przenosi mnie i wyświetla dane. W innym wypadku jest tak jakby nie wykonywał się kod js`a w componentcie filters. Normalnie rozkładam ręcę i nie mam pojęcia co jest nie tak , jakieś pomysły?