Zum Inhalt springen

eID und Select-Felder

Erstellt am 17. Juni 2010 · 7 Antworten · letzte Antwort am 10. Dezember 2010

Tags: Frage

wolfi02 ·

Hallo Gemeinde,

ich bin gerade dabei eine Extension zu bauen und machte ein paar Daten mit Ajax nachladen. Dazu verwende ich die eID Methode und als Hilfe habe ich das Buch von Dmitry Dulepov.

Wenn ich die Daten mit Hilfe eines Input-Feldes nachladen möchte, funktioniert die Sache.

<input type="text" value="" name="inputfeld[page]" id="inputfeld" autocomplete="off" />

<div id="inhaltnachladen"></div>
<script type="text/javascript">
tx_myFunction_init('inputfeld','inhaltnachladen',512);
</script>

Das merkwürdige ist nur, wenn ich das ganze mit einer Select-Box mache, funktioniert es nicht. Die Daten werden einfach nicht nachgeladen.
Hat jemand eine Idee?

Lg Christian

sunixzs ·

Hallo,

gut wäre zu wissen, wie der Select-Quelltext aussieht und wie die Funktion tx_myFunction_init aussieht. In der Funktion wird wohl der Wert aus dem Select ausgelesen.

LG Sun

onyx_no1 ·

Hallo, ich stehe vor dem gleichen Problem, wie wolfi02. Ich bin die Beschreibung mehrfach durchgegangen, aber irgendwie läuft es nicht.
In einem anderen Forum wurde geschrieben, dass das eid-php-Script (www.domain.de/index.php?eid=tx_myext&param=xyz) auch so ansprechbar sein müsste. Das geht bei mir schon mal nicht.

In der ext_localconf.php habe ich folgendes stehen:

$TYPO3_CONF_VARS['FE']['eID_include']['tx_myext'] = 'EXT:myext/pi2/class.tx_myext_eid.php';

Die class.tx_myext_eid.php sieht wie folgt aus:

<?php
require_once(PATH_t3lib.'class.t3lib_befunc.php');
require_once(PATH_t3lib.'stddb/tables.php');
require_once(t3lib_extMgm::extPath('cms','ext_tables.php'));
class tx_myext_eid {
    function main() {
        ... hier wird die Datenbank abgefragt und $content mit Inhalt gefüllt ...
        echo $content; 
    }
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/myext/pi2/class.tx_myext_eid.php'])  {
	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/myext/pi2/class.tx_myext_eid.php']);
}
$SOBE = t3lib_div::makeInstance('tx_myext_eid');
$SOBE->main();
?>

Ist das soweit korrekt? Oder fehlt da noch was, um das eID-Script per URL ansprechen zu können?

BTW: Laut dem Buch ist die JS-Funktion wie folgt aufgebaut:

function tx_myFunction_init(ctrlId, acId, param) {
    document.observe('dom:loaded', function () {
        new Ajax.Autocompleter(ctrlId, acId, 'index.php', {
            parameters: 'eID=tx_myext&param=' + param,
            paramName: 'search'
        });
    });
}

Ich habe auf der Scriptaculous-Seite gesehen, das sich die Syntax ein bisschen anders angegeben ist ... ohne autocomplete="off" im <input>-Tag ... im Beispiel für Autocompleter.Local ist er noch drin.
Ajax.Autocompleter
Bin mir aber nicht sicher, ob das wolfi02 Problem löst.

Hat jemand eine Idee, für einen Lösungsansatz meines Problems?

Grüß

wolfi02 ·

Hallo onyx_no1,

in der main-function gebe ich den content wie folgt zurück:

$ajax_return_data = t3lib_div::array2xml(array('data'=>$content));

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate( "D, d M Y H:i:s" ) . 'GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Length: '.strlen($ajax_return_data));
header('Content-Type: text/xml');

echo $ajax_return_data;

Was mich bei diesem Thema noch interessiert ist, wie man an die TypoScript-Konfiguration heran kommt. Bisher habe ich noch nichts gefunden, um die TS Einstellung auslesen und zu können. Bisher muss ich, wenn beispielsweise Bilder nachgeladen werden sollen, die Größenangaben immer fest im Code verankern, was sehr unpraktisch ist.

Lg Christian

onyx_no1 ·

Hallo Christian,

bin inzwischen dahinter gekommen, woran es bei mir hing:
Ganz trivial: "eID" muss es in der URL lauten - nicht "eid". -.-
War wahrscheinlich zu übermüdet.

Dein Beispiel gefällt mir auch ganz gut.

Gruß

wolfi02 ·

Hallo,

ja manchmal sind es die kleine Sachen die einfach nicht auffallen wollen.

Hättet du eine Idee oder Lösung wie man die TS Konfiguration rankommt?

Lg

sunixzs ·

Hallo zusammen,

für Ajax habe ich was in einem anderen Thread:

#99538

In der eID-Klasse wird das Plugin instanziert (z. B. mit dem Parameter ($conf[ajax] = true).

Dann steht auch die TS-Config zur Verfügung.

LG sun