Hi,
ich möchte per link eine Funktion aufrufen, ich weiß ungefähr wie das mit einem Formular button geht:
<form name="detailAnsicht_form" action="index.php?id='.$GLOBALS['TSFE']-">id.'" method="post" enctype="multipart/form-data">
<input type="hidden" name="searchSave" value="sendDetailAnsicht" />
<input type="submit" value="DETAILANSICHT" />
</form>
.
Allerdings möchte ich einen link erzeugen der dann die Funktion detailAnsicht($uid) aufruft.
Ich gebe eine Tabelle mit drei Spalten aus, in der nur der "wer_sucht", "wen" und der Button (Detailansicht) ausgegeben werden. Nach Klick auf Detailansicht sollen Alle Felder die zu dem Datensatz dazugehören ausgegeben werden.
Wie mache ich das per link, anstatt per Button?
EDIT:
Hier ist die Vorlage meiner Extension, der Link "Details" ist das was ich suche.
http://jhh.sport-nord.de/boerse/suche.php?cat=sv
thx,
Sefer
Hier die Extension im experimental zum ausprobieren:
http://www.amafu.de/alfa2_1/index.php?id=469
DETAILANSICHT funktioniert aber per Formular auch noch nicht! #angry#
MEIN KOMPLETTER CODE
<?php
/***************************************************************
* Copyright notice
*
* (c) 2008 <>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
require_once(PATH_tslib.'class.tslib_pibase.php');
/**Funktionen ### ANFANG
* main ()
* suchern()
* speichern()
* zurueck()
* datenEingabe()
* getList()
* getItems()
* getAusgangspunkt()
*
*///Funktionen ### Ende
/**
* Plugin 'plugin_boerse_01' for the 'sd_boerse_01' extension.
*
* @author <>
* @package TYPO3
* @subpackage tx_sdboerse01
*/
class tx_sdboerse01_pi1 extends tslib_pibase {
var $prefixId = 'tx_sdboerse01_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.tx_sdboerse01_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'sd_boerse_01'; // The extension key.
var $conf;
/**
* The main method of the PlugIn
*
* @param string $content: The PlugIn content
* @param array $conf: The PlugIn configuration
* @return The content that is displayed on the website
*/
function main($content, $conf) {
$this->conf = $conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
$this->pi_USER_INT_obj=1;
//Hier wird die postArray Variable erzeugt, diese bekommt ihren Inhalt von t3lib_div::_POST(); bzw. vom Formular
$postArray = t3lib_div::_POST();
if($postArray['send'] == 1){
switch($postArray['searchSave']){
case "suchen":
$content=$this->zurueck();
$content.= "<br />SUCHEN ERFOLGRICH!!!";
$content.=$this->getList();
break;
case "speichern":
$content.=$this->speichern();
break;
//
case "sendDetailAnsicht":
$content.="<br />Detailansicht!!!";
//
}
}else{
//Das Formular für die Dateneingabe wird angezeigt
$content.=$this->datenEingabe();
}
return $this->pi_wrapInBaseClass($content);
}
/**
* Die Funktion speichern
*/
function speichern(){
$pidAusgangspunkt= $this->getAusgangspunkt();
$postArray = t3lib_div::_POST();
//Ein Array wird erzeugt, welches die Werte enthält die über das Formular mit Hilfe von Post gesendet werden
//Wichtig hierbei ist, dass man manuell die pid des Sysordners angeben muss, wo die Daten im BE angelegt werden sollen
//Vielleicht sollte man für pid den Wert automatisch ermitteln lassen z.B. die pid von der aktuellen Seite
$insertValuesArray = array(
'pid' => $pidAusgangspunkt,
'wer_sucht' => $postArray['wer_sucht'],
'wen' => $postArray['wen'],
);
//Es wird zwar ein Array erzeugt, dieses wird aber nur dazu genutzt, um eine Insertabfrage zu starten
//Das eigentliche passiert mit Hilfe von 'exec_INSERTquery(Tabelle,newValues)
//Die in insertValuesArray vorhandenen Daten werden in der Tabelle 'tx_sdboerse01_daten' hinzugefügt
$newDataQuery = $GLOBALS['TYPO3_DB']->exec_INSERTquery(
'tx_sdboerse01_daten',
$insertValuesArray
);
//Die content-Variable enthält alle Elemente die ausgegeben werden
$content=$this->zurueck();
$content.= "<br />Super, alles gespeichert";
//Der Inhalt aus der $content-Variablen von der Funktion getList() wird ebf. ausgegeben.
$content.=$this->getList();
return $content;
}
/**
* Die Funktion
*/
function zurueck(){
//So erzeugt man automatisch einen Link auf die Seite aktuelle Seite
//Würde man einfach die Seite Aktualisieren, dann wird die PostVariable erneut gesendet
$content.= ''.$this->pi_linkToPage('<< zurück!',$GLOBALS['TSFE']->id).'';
$content.='<br /><a href="javascript:history.back()">JavaScript zurück</a>';
return $content;
}
/**
* Die Funktion datenEingabe() ermöglicht im Formular Daten einzugeben
*/
function datenEingabe() {
$content ='
<form name="new_data_form" action="index.php?id='.$GLOBALS['TSFE']-">id.'" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Wer sucht:</td>
<td>
<select size="1" name="wer_sucht">
<option value="spieler">Spieler</option>
<option value="verein">Verein</option>
</select>
</td>
<td>
<input type="radio" name="searchSave" value="suchen" checked="checked" />SUCHEN
</td>
<td></td>
</tr>
<tr>
<td>Wen:</td>
<td>
<select size="1" name="wen">
<option value="spieler">Spieler</option>
<option value="verein">Verein</option>
</select>
</td>
<td>
<input type="radio" name="searchSave" value="speichern" />SPEICHERN
</td>
<td>
<input type="hidden" name="send" id="send" value="1" />
<input type="submit" value="SENDEN" />
</td>
</tr>
</table>
</form>
';
return $content;
}
/**
* Die Funktion getList liest alle Items mit Hilfe der Funbktion getItems aus und gibt diese als Tabelle aus.
* Um die Tabelle anzuzeigen genügt es folgendes in der main-Funktion hinzuzufügen:
* $content.=$this->getList();
*/
function getList() {
//$rows enthält alle Datensätze die von getItems ermittelt wurde
$rows=$this->getItems();
$postArray = t3lib_div::_POST();
$content.='<table border="2">';
$content.='<thead bgcolor="grey"><tr><th>wer_sucht</th><th>wen</th><th>uid</th></tr></thead>';
//$content.='<tr>';
//Die Schleife wird solange wiederholt, bis alle Datensätze gelesen worden sind.
//Jeder einzelne Datensatz kann nun über die Variable $row ["FELDNAME"]angesprochen werden
while(list($c,$row)=each($rows)) {
$content.='<tr>';
$content.='<td>'.($row["wer_sucht"]).'</td>';
$content.='<td>'.($row["wen"]).'</td>';
$content.='<td>'.$this->detailAnsicht(($row["uid"])).'</td>';
$content.='</tr>';
}
$content.='</table>';
return $content;
}
/**
* Die Funktion getItems führt ein einfaches SQL-Statement durch und speichert diesen in der Variablen $query
* Das Ergebnis wird als array in der Variablen $out gespeichert und als return an die aufrufende Stelle zurückgegeben
*/
function getItems() {
$lang = $GLOBALS["TSFE"]->sys_language_uid;
$pidAusgangspunkt= $this->getAusgangspunkt();
$postArray = t3lib_div::_POST();
$queryWhere =" AND wer_sucht = '".$postArray['wer_sucht']."'";
$queryWhere.=" AND wen = '".$postArray['wen']."'";
// Datenbank ansprechen und in Schleife ausgeben
// function exec_SELECTquery($select_fields,$from_table,$where_clause,$groupBy='',$orderBy='',$limit='')
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "tx_sdboerse01_daten","deleted = 0 ".$queryWhere." AND hidden = 0 AND pid='".$pidAusgangspunkt."'", "", "uid desc");
//$res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*", "tx_sdboerse01_daten","deleted = 0 AND hidden = 0 AND pid='".$pidAusgangspunkt."'", "", "uid desc");
$out=array();
while($row = mysql_fetch_assoc($res)) {
$out[]=$row;
}
return $out;
}
/**
* Diese Funktion ermittelt, ob im Plugin ein Ausganspunkt für die Datensätze festegelegt wurde.
* Falls nicht, dann wird die PageID der Seite, wo das Plugin ist, zurückgegeben
*/
function getAusgangspunkt() {
// ist ein Ausgangspunkt gesetzt wird dieser ausgelesen und verwendet, ansonsten wird die aktuelle Seite auf der sich das Plugin befindet verwendet
$pidAusgangspunkt = $this->cObj->data["pages"];
if (!intval($pidAusgangspunkt)) $pidAusgangspunkt=$GLOBALS["TSFE"]->id;
return $pidAusgangspunkt;
}
/**
* Die Funktion detailAnsicht($uid)
*/
function detailAnsicht($uid) {
$content ='
<form name="detailAnsicht_form" action="index.php?id='.$GLOBALS['TSFE']-">id.'" method="post" enctype="multipart/form-data">
<input type="hidden" name="searchSave" value="sendDetailAnsicht" />
<input type="submit" value="DETAILANSICHT" />
</form>
';
$content.="'".$uid."'";
return $content;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/sd_boerse_01/pi1/class.tx_sdboerse01_pi1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/sd_boerse_01/pi1/class.tx_sdboerse01_pi1.php']);
}
?>