2017-10-24 3 views
0

Verwenden von Joomla Version 3.7.5 mit Wright-Vorlage.Warum bricht Joomla bei Verwendung in einem Modul ab?

Ich habe ein Modul in der linken Seitenleiste, die 2 typeahead Felder hat, die Daten von einer lokalen Datenbank erhalten. Der PHP-Code wird mit include_once über das Sourcer-Plugin referenziert.

Die Typehead funktioniert nicht, wenn sie im Modul verwendet wird. Aber - wenn ich den exakt gleichen Code in einem Artikel verwende, funktioniert der Typehead korrekt.

Verhalten sich Artikel und Module anders? Ich würde es begrüßen, wenn jemand dieses Verhalten erklären könnte.

Die relevanten Teile des Codes folgen.

PHP - die ersten Codezeilen sind:

JHtml::_('script', './templates/js_wright/wright/js/jquery.js'); 
JHtml::_('script', './styling/bootstrap3-typeahead.min.js'); 
$document->addStyleSheet("./media/jui/css/bootstrap.css",'text/css',"screen"); 

HTML - in der Form:

<div class="input-prepend span8"><span class="add-on" ><i class="icon-map-marker" ></i></span><input autocomplete="off" style="border-color:#F7980F;" class="typeahead" id="inputIcon" type="text" name="collectionpoint" /></div> 

Javascript:

$('input.typeahead').typeahead({ 
     source: function (query, process) { 
     return $.get('./towns.php', { query: query }, function (data) { 
       console.log(data); 
       data = $.parseJSON(data); 
       return process(data); 
      }); 
     } 
    }); 

und im towns.php:

$sql = "SELECT Town FROM lkp_towns 
     WHERE Town LIKE '%".$_GET['query']."%' 
     LIMIT 5"; 
     $result = $mysqli->query($sql); 

     $json = []; 

     while($row = $result->fetch_assoc()){ 
      $json[] = $row['Town']; 
     } 
     echo json_encode($json); 
+0

BTW Joomla verwendet Bootstrap 2.3.2 – VTodorov

Antwort

0

Arbeitete es aus.

Joomla sieht ein Modul nicht als separate Seite, sondern als verschachteltes Div der Hauptseite.

die folgenden Zeilen zum Hauptartikel Seite bewegen, auf das das Modul zeigt das Problem, wie die Js muss gelöst verwiesen werden, bevor irgendetwas anderes geladen ist:

dies aus dem Modul entfernt und enthielt es in dem Artikel :

JHtml::_('script', './templates/js_wright/wright/js/jquery.js'); 
JHtml::_('script', './styling/bootstrap3-typeahead.min.js'); 
$document->addStyleSheet("./media/jui/css/bootstrap.css",'text/css',"screen");