Zum Inhalt springen

Extension mit Clickmenu, Formular und DB anbindung

Erstellt am 10. August 2011 · 1 Antwort · letzte Antwort am 11. August 2011

Tags: Frage

ichzy ·

Hi,

Ich habe eine eigene Extension mit Kickstarter erstellt und ein Clickmenu Item hinzugefügt, auf dieser erstellten Clickmenu Seite, habe ich zurzeit ein Formular per HTML nicht per TypoScript. Jetzt würde ich gerne das Formular abschicken und an die selbe Klasse schicken und aus den eingegebenen eingaben, einen Insert bauen.

Nur leider weiss ich nicht wie ich das Forumlar an die selbe Klasse schicke geschweige denn, mir die Attribute aus der URL oder aus dem POST hole.

	"<form name='input' target='_self' onsubmit='return' method='POST'>
	<div style='margin-left:10px;'>
	        <label for='q-PartnerID'>PartnerID.:</label>
		<input type='text' name='q-PartnerID' value='" .$row['partnerid'] . "' /><br />
		<label for='b-Category'>Kategorie(P/L):</label>
		<input type='text' name='b-Category' value='" .$row['category'] . "' /><br />
     
		<label for='x-Color'>Linkfarbe unter Widget:</label>
		<input type='text' name='x-Color' value='" .$row['color'] . "' /><br />
      
		<input type='button' name='y-Submit' style='margin-top:5px' value='submit'/>
        </div>
</form>";
				}
vince ·

Hallo,

damit die get und post parameter aus verschiedenen Plugins nicht durcheinander kommen, gehört bei Typo3 zu den Parametern immer ein Präfix (der Name der entsprechenden Plugin Klasse).

Zu deinem konkreten Problem:

Das Formular wird an irgendeine Seite gesendet (action= "irgendwas" )

Auf dieser Seite bindest du das Plugin ein.

Im formular die Felder so benennen: name='tx_extensionkey_piX[q-PartnerID]' statt name='q-PartnerID'

Dann kannst du in der Plugin Klasse tx_extensionkey_piX über $this->piVars['q-PartnerID'] auf den Wert zugreifen.
In dem Attribut piVars (ein Array) stehen alle Parameter, POST und GET (ich weiß jetzt allerdings spontan nicht, welches von beiden dominant ist)

Folgender Aufruf ist am Anfang der Main-Methode wichtig:

$this->pi_setPiVarDefaults();

Gruß,

vince