---
title: "Extension: Javascript generieren - Objekt"
url: "https://www.typo3.net/d/105237-extension-javascript-generieren-objekt"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2011-05-05"
last_reply: "2011-07-05"
replies: 9
solved: false
page: 1
pages: 1
lang: "de"
---

# Extension: Javascript generieren - Objekt

Extensions › Entwicklung · 9 Antworten · gestartet 2011-05-05

## Eröffnungsbeitrag

**JakobRa** · 2011-05-05 · [Beitrag #1](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/1)

Hallo,
ich suche nach einer Möglichkeit Javascript in meiner Extension zu generieren (in temp. Dateien).

Was ich machen möchte...
Alle Datensätze aus der Datenbank auslesen und jeden als Javascript-Objekt speichern.

Ist das möglich, habt ihr vllt. ein kleines Beispiel für mich?

Viele Grüße,
Jakob

## Antworten

### [#2](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/2) · aemka · 2011-05-05

Das ist möglich, viel einfacher wäre es aber, wenn du deine Daten über ein eid-Skript als JSON ausgibst und dann per JavaScript entsprechend über Ajax abrufst.

### [#3](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/3) · JakobRa · 2011-05-06

Hallo,
danke für deinen Tipp aemka.
Gibt es noch eine andere Möglichkeit?

Ich habe es gerade so versucht...

```typoscript
$GLOBALS['TSFE']->setJS($this->extKey,'alert("'.$rowE['name'].' " ) ; ');
```

...das funktioniert auch, aber nur mit einer anweisung. Wenn ich eine zweite darunter mache wird die erste überschrieben.

Gibt es eine andere Funktion die wie "setJS" arbeitet, bei der ich mehr Code schreiben kann?

**Ich möchte an mehreren Stellen in meiner Extension JS-Code aufrufen.**

Grüße,
Jakob

### [#4](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/4) · JakobRa · 2011-05-06

Also jetzt mach ich es so das ich den JavaScript-Code in einen eigenen Subpart schreibe.
Kommt mir aber ziemlich "dirty" vor...

Grüße,
Jakob

### [#5](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/5) · JakobRa · 2011-05-09

> **aemka schrieb:**
>
> Das ist möglich, viel einfacher wäre es aber, wenn du deine Daten über ein eid-Skript als JSON ausgibst und dann per JavaScript entsprechend über Ajax abrufst.

Scheint wircklich viel einfacher zu sein als meine Versuche...

Hat jemand vllt. eine Seite für mich, oder eine Extension, wo ich Beispiele zu eID-Skript/Ajax finden kann?

Grüße,
Jakob

### [#6](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/6) · aemka · 2011-05-09

Google mal nach typo3 eid json.

Gleich der erste Treffer:
<http://www.interaktionsdesigner.de/2009/01/04/asynchrone-datenubertragung-zwischen-typo3-und-jquery/>

### [#7](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/7) · JakobRa · 2011-05-09

Danke aemka!
Wie man richtig googelt muss ich wohl noch lernen...

Grüße und nen schönen Tag,
Jakob

### [#8](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/8) · JakobRa · 2011-05-10

So ganz steig ich da nicht durch, vllt. könnt ihr mir nochmal helfen.

Ich habe jetzt folgendes zusammengeschrieben...
test_eid.php

```php
	if(!defined ('PATH_typo3conf')) {
		die('Access denied.');
	}

	require_once(PATH_tslib.'class.tslib_pibase.php');
	
	class test_eID extends tslib_pibase {
		var $extKey = 'tx_tptest';
		
		function main() {
			$TSFE = tslib_eidtools::initFeUser();
			tslib_eidtools::connectDB();
			
			$content = array();
			
			echo 'username: '.$GLOBALS['TSFE']->fe_user->user['username'].'<br /><br />';
			
			require_once('typo3conf/ext/tp_test/pi1/test_eID.php');
			$obj = t3lib_div::makeInstance("test_eID" );
			
			$a = $obj->getAnswer();
			
			echo json_encode($a);
		}
		
		function getAnswer() {
			$resK = $GLOBALS['TYPO3_DB']->exec_SELECTquery('name,titel','tx_tptest','','','','');
			while($rowK = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($resK))
			{	
				$test = array("name" => $rowK['name'], "titel" => $rowK['titel']);
				$content[] = $test;
			}
			return $content;
		}
	}
	
	$output = t3lib_div::makeInstance('test_eID');
	$output->main();
```

ext_localconf-php

```php
$TYPO3_CONF_VARS['FE']['eID_include']['test_eID'] = 'EXT:tp_test/pi1/test_eID.php';
```

Ergebnis...
HTML-Seite mit leeren Header
Body: [{"name":"Jakob","titel":"TestEintrag"},{"name":null,"titel":null}]

**Wie binde ich jetzt für die Weiterverarbeitung jQuery ein?**

Das eID kann ich ja überall einfach über einen Parameter aufrufen.
**Kann ich dem eID sagen das es nur kommen soll wenn die Extension-Seite aufgerufen wird und ein bestimmter Benutzer eingeloggt ist?**

**Ein Template gibt es bei eID nicht, oder?**

Viele Grüße,
Jakob

### [#9](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/9) · JakobRa · 2011-05-10

Kann doch nicht so schwer sein...

Über TS geht es ja nicht, weil er mir ja alles raushaut.
Bin grad ziemlich am verzweifeln und google liefert mir auch nichts brauchbares. -.-

Viele Grüße,
Jakob

### [#10](https://www.typo3.net/d/105237-extension-javascript-generieren-objekt/10) · BlackPixel · 2011-07-05

Ist auch nicht so schwer.

In Deinem Extensiontemplate im TS einfach eine neue typenum erstellen und den page type auf json stellen. Denn nur wenn der Header als JSON gesendet wird erzeugt jQuery dir aus der Rückgabe objekte. Ansonsten stirbt jQuery mit not success:

```typoscript
json = PAGE
json {
		  typeNum=1284618330
		  10 = USER_INT
		  10 {
			  userFunc = tx_extbase_dispatcher->dispatch
			  ...

	  }
	  config {
		  disableAllHeaderCode = 1
		  additionalHeaders = Content-type:application/json|Cache-Control: no-cache, must-revalidate, max-age=0|Expires: Mon, 2 Jan 2006 01:00:00 GMT|Pragma: no-cache
		  xhtml_cleaning = 0
		  admPanel = 0
		  no_cache = 1
	  }
  }
```

und in deinem PHP dann einfach hingehen, alle daten aus der db afragen, in ein array packen und aus dem array json machen (json_encode($obj)).

Gruß Manfred

---

Quelle: „Extension: Javascript generieren - Objekt“, typo3.net, https://www.typo3.net/d/105237-extension-javascript-generieren-objekt
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
