Zum Inhalt springen

Auswahlliste als Extension schreiben

Erstellt am 10. März 2009 · 12 Antworten · letzte Antwort am 12. März 2009

Tags: PHP, Datenbank, Frage

DirkDirk ·

hallo ich habe angefangen eine Extension zu schreiben....
komme aber leider nicht mehr voran...
ich habe in der Extension.php Datei...

 ...
<td><p>Rubrik <br> <select name="rubrik" size="1">
while('.$this->getFieldContent('rubrik').' != 0){
	$content.=<option value=";
	$content.='.$this->getFieldContent('rubrik');'"> 
	}
</option></select></td>
...

ich bekomme zwar den ersten Eintrag in die Auswahlbox, aber die weiteren erscheienn leider nicht mehr...
woran kann es liegen hat jemand eine Idea??[/img]

DirkDirk ·

es geht ja auch das man die Datenbankeinträge aus der Datenbank auslesen kann?!
habe verschiede arten versucht... 🙁 ging nicht...
hat für dieses Thema jemand eine Idea?

DirkDirk ·

HTML-Code ??? PHP Code wird generiert, ja die Änderngen wurden ja in der PHP-Datei gemacht...aber wie gesagt ich bekomme nur die erste Rubrik...
aber man kann ja über TypoScript Datenbankeinträge abfragen... ich würd es dann lieber so machen...

ThBodi ·

HTML-Code ??? PHP Code wird generiert, ja die Änderngen wurden ja in der PHP-Datei gemacht...

"Wow" - Ich weiß nicht, was ich anderes dazu schreiben soll.

Ich habe es sinngemäß schonmal irgendwo anders angemerkt:

"Du willst Extensions programmieren? Das sind die Streckenpunkte auf dem Weg zum Ziel:
1. (X)HTML verstehen
2. CSS verstehen
3. PHP verstehen
4. TYPO3 verstehen"

Du scheinst noch nicht bis zum ersten Wegpunkt gekommen zu sein.

matin ·

bist du in der listview oder im singleview? so auf den ersten blick würde ich mal sagen, dass du zu viele punkte hast bzw. wenn du in der singleview bist du trotz while-schleife immer nur 1 datendatz zurügeliefert bekommst.

matin ·

schau dir mal die punkte bzw. den php code genau an ... du erzeugst keinen korrekten code ... du vermischst code-anweisungen mit html-ausgaben (strings) und da sind ein paar punkte zu viel, dafür anführungszeichen zu wenig ...

matin ·

das geht ja auch grundsätzlich, aber dein code ist ganz einfach falsch ... poste mal den ganzen code für diesen bereich

DirkDirk ·

function pi_list_row() {
$editPanel = $this->pi_getEditPanel();
if ($editPanel) $editPanel='<TD>'.$editPanel.'</TD>';

return '<tr'.($c%2 ? $this->pi_classParam('listrow-odd') : '').'>
<td><p>Rubrik <br> <select name="rubrik" size="1">
while('.$this->getFieldContent('rubrik').' != 0){
$content.=<option value=";
$content.='.$this->getFieldContent('rubrik');'">
}
</option></select></td>
<td valign="top"><p>'.$this->getFieldContent('dienstleistung').'</p></td>
</tr>';
}

jetzt bekomme ich alle Inhalt in die Auswahlbox, aber folgendes steht in der Auswahlbox...
1.tes while(Bauen != 0){ $content.=
2.tes while(Wellness != 0){ $content.=

also der inhalt auch...

als info...der Quelltext...

<tr>
<td><p>Rubrik </p></td><td> <select name="rubrik" size="1">
<option value=";
$content.=Bauen &amp; Wohnen&lt;tr&gt;
<td><p>Rubrik </td><td> <select name=" rubrik="" size="1">
while(Wellness != 0){
$content.=</option><option value=";
$content.=Wellness&lt;tr&gt;
<td><p>Rubrik </td><td> <select name=" rubrik="" size="1">
while(Internet != 0){
$content.=</option><option value=";
$content.=Internet
</table>

neotron ·
	function pi_list_row() {
	$editPanel = $this->pi_getEditPanel();
	if ($editPanel) $editPanel='<TD>'.$editPanel.'</TD>';
    	return '<tr'.($c%2 ? $this->pi_classParam('listrow-odd') : '').'>
	<td><p>Rubrik <br> <select name="rubrik" size="1">
	while('.$this->getFieldContent('rubrik').' != 0){
	$content.=<option value=";
	$content.='.$this->getFieldContent('rubrik');'">
	}
	</option></select></td>
	<td valign="top"> 
<p>'.$this->getFieldContent('dienstleistung').'</p></td>
	</tr>';
	}

$editPanel = $editpanel nur mit wrap ? ergo <td>..<td>pi_getEditPanel()</td>..</td> usw.

erzeugt das nicht ein rekursives backronym?

sorry, hier steig ich aus!

matin ·

eine while-schleife im return ist auch nicht korrekt ... der ganze php-code ist eigentlich falsch ...