SQL Update funktion in Datenbank-Ausgabe einbauen...

RT-Schwabe

Grünschnabel
Hallo zusammen,

wer kann mir helfen ein Auwahl (select) Feld so in den folgenden Text einzubauen, dass es beim Drücken auf einen Send-button ein Feld in der Datenbank ändert:


PHP:
<?php 


require_once(PATH_tslib.'class.tslib_pibase.php'); 

class tx_admreport_pi1 extends tslib_pibase { 
        var $prefixId = 'tx_admreport_pi1';                // Same as class name 
        var $scriptRelPath = 'pi1/class.tx_admreport_pi1.php';        // Path to this script relative to the extension dir. 
        var $extKey = 'adm_report';        // The extension key. 
        var $pi_checkCHash = TRUE; 

        function main($content,$conf)        { 
                switch((string)$conf['CMD'])        { 
                        case 'singleView': 
                                list($t) = explode(':',$this->cObj->currentRecord); 
                                $this->internal['currentTable']=$t; 
                                $this->internal['currentRow']=$this->cObj->data; 
                                return $this->pi_wrapInBaseClass($this->singleView($content,$conf)); 
                        break; 
                        default: 
                                if (strstr($this->cObj->currentRecord,'tt_content'))        { 
                                        $conf['pidList'] = $this->cObj->data['pages']; 
                                        $conf['recursive'] = $this->cObj->data['recursive']; 
                                } 
                                return $this->pi_wrapInBaseClass($this->listView($content,$conf)); 
                        break; 
                } 
        } 

        /** 
         * Shows a list of database entries 
         * 
         * @param        string                $content: content of the PlugIn 
         * @param        array                $conf: PlugIn Configuration 
         * @return        HTML list of table entries 
         */ 
        function listView($content,$conf)        { 
                $this->conf=$conf;                // Setting the TypoScript passed to this function in $this->conf 
                $this->pi_setPiVarDefaults(); 
                $this->pi_loadLL();                // Loading the LOCAL_LANG values 

                $lConf = $this->conf['listView.'];        // Local settings for the listView function 

                if ($this->piVars['showUid'])        {        // If a single element should be displayed: 
                        $this->internal['currentTable'] = 'tx_admreport_adm'; 
                        $this->internal['currentRow'] = $this->pi_getRecord('tx_admreport_adm',$this->piVars['showUid']); 

                        $content = $this->singleView($content,$conf); 
                        return $content; 
                } else { 
                        $items=array( 
                                '1'=> $this->pi_getLL('list_mode_1','Mode 1'), 
                                '2'=> $this->pi_getLL('list_mode_2','Mode 2'), 
                                '3'=> $this->pi_getLL('list_mode_3','Mode 3'), 
                        ); 
                        if (!isset($this->piVars['pointer']))        $this->piVars['pointer']=0; 
                        if (!isset($this->piVars['mode']))        $this->piVars['mode']=1; 
                        if (!isset($this->piVars["sort"]))$this->piVars["sort"]="datum:1"; 

                                // Initializing the query parameters: 
                        list( 
                        $this->internal['orderBy'],$this->internal['descFlag']) = explode(':',$this->piVars['sort']); 
                        $this->internal['results_at_a_time']=t3lib_div::intInRange($lConf['results_at_a_time'],0,1000,25);                // Number of results to show in a listing. 
                        $this->internal['maxPages']=t3lib_div::intInRange($lConf['maxPages'],0,1000,100);;                // The maximum number of "pages" in the browse-box: "Page 1", "Page 2", etc. 
                        $this->internal['searchFieldList']='status,bericht,kundennummer,kundenname,plz,ort,adm,datum,ansprechpartner'; 
                        $this->internal['orderBy']='datum'; 
                        $this->internal['orderByList']='datum'; 

                                // Get number of records: 
                        $res = $this->pi_exec_query('tx_admreport_adm',1); 
                        list($this->internal['res_count']) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res); 

                                // Make listing query, pass query to SQL database: 
                        $res = $this->pi_exec_query('tx_admreport_adm'); 
                        $this->internal['currentTable'] = 'tx_admreport_adm'; 

                                // Put the whole list together: 
                        $fullTable='';        // Clear var; 
                #        $fullTable.=t3lib_div::view_array($this->piVars);        // DEBUG: Output the content of $this->piVars for debug purposes. REMEMBER to comment out the IP-lock in the debug() function in t3lib/config_default.php if nothing happens when you un-comment this line! 

                                // Adds the mode selector. 
                        // $fullTable.=$this->pi_list_modeSelector($items); 

                                // Adds the whole list table 
                        $fullTable.=$this->pi_list_makelist($res); 

                                // Adds the search box: 
                        $fullTable.=$this->pi_list_searchBox(); 

                                // Adds the result browser: 
                        $fullTable.=$this->pi_list_browseresults(); 

                                // Returns the content from the plugin. 
                        return $fullTable; 
                } 
        } 
        /** 
         * Display a single item from the database 
         * 
         * @param        string                $content: The PlugIn content 
         * @param        array                $conf: The PlugIn configuration 
         * @return        HTML of a single database entry 
         */ 




        function singleView($content,$conf)        { 
                $this->conf=$conf; 
                $this->pi_setPiVarDefaults(); 
                $this->pi_loadLL(); 


                        // This sets the title of the page for use in indexed search results: 
                if ($this->internal['currentRow']['title'])        $GLOBALS['TSFE']->indexedDocTitle=$this->internal['currentRow']['title']; 

                $content='<div'.$this->pi_classParam('singleView').'> 
                        <H5>Eintrag "'.$this->internal['currentRow']['uid'].'" der Besuchsberichte</H2> 
                                <p'.$this->pi_classParam("singleViewField-status").'><strong>'.$this->getFieldHeader('status').':</strong> '.$this->getFieldContent('status').'</p> 
                                <p'.$this->pi_classParam("singleViewField-datum").'><strong>'.$this->getFieldHeader('datum').':</strong> '.$this->getFieldContent('datum').'</p> 
                                <p'.$this->pi_classParam("singleViewField-adm").'><strong>'.$this->getFieldHeader('adm').':</strong> '.$this->getFieldContent('adm').'</p> 
                                <p'.$this->pi_classParam("singleViewField-kundennummer").'><strong>'.$this->getFieldHeader('kundennummer').':</strong> '.$this->getFieldContent('kundennummer').'</p> 
                                <p'.$this->pi_classParam("singleViewField-kundenname").'><strong>'.$this->getFieldHeader('kundenname').':</strong> '.$this->getFieldContent('kundenname').'</p> 
                                <p'.$this->pi_classParam("singleViewField-ansprechpartner").'><strong>'.$this->getFieldHeader('ansprechpartner').':</strong> '.$this->getFieldContent('ansprechpartner').'</p> 
                                <p'.$this->pi_classParam("singleViewField-plz").'><strong>'.$this->getFieldHeader('plz').':</strong> '.$this->getFieldContent('plz').'</p> 
                                <p'.$this->pi_classParam("singleViewField-ort").'><strong>'.$this->getFieldHeader('ort').':</strong> '.$this->getFieldContent('ort').'</p> 
                                <p'.$this->pi_classParam("singleViewField-branche").'><strong>'.$this->getFieldHeader('branche').':</strong> '.$this->getFieldContent('branche').'</p> 

                                <p'.$this->pi_classParam("singleViewField-verband").'><strong>'.$this->getFieldHeader('verband').':</strong> '.$this->getFieldContent('verband').'</p> 
                                <p'.$this->pi_classParam("singleViewField-kundenschluessel").'><strong>'.$this->getFieldHeader('kundenschluessel').':</strong> '.$this->getFieldContent('kundenschluessel').'</p> 
                                <p'.$this->pi_classParam("singleViewField-warenpraesenz_endress").'><strong>'.$this->getFieldHeader('warenpraesenz_endress').':</strong> '.$this->getFieldContent('warenpraesenz_endress').'</p> 
                                <p'.$this->pi_classParam("singleViewField-wettbewerber_1").'><strong>'.$this->getFieldHeader('wettbewerber_1').':</strong> '.$this->getFieldContent('wettbewerber_1').'</p> 
                                <p'.$this->pi_classParam("singleViewField-wettbewerber_2").'><strong>'.$this->getFieldHeader('wettbewerber_2').':</strong> '.$this->getFieldContent('wettbewerber_2').'</p> 
                                <p'.$this->pi_classParam("singleViewField-wettbewerber_3").'><strong>'.$this->getFieldHeader('wettbewerber_3').':</strong> '.$this->getFieldContent('wettbewerber_3').'</p> 
                                <p'.$this->pi_classParam("singleViewField-bericht").'><strong>'.$this->getFieldHeader('bericht').':</strong> '.$this->getFieldContent('bericht').'</p> 



                                <p>'.$this->pi_list_linkSingle($this->pi_getLL('back','Back'),0).'</p></div>'. 
                $this->pi_getEditPanel(); 

                return $content; 
                 
                 
                 
                                
                 
                 
                 
                 
                 
        } 




        /** 
         * Returns a single table row for list view 
         * 
         * @param        integer                $c: Counter for odd / even behavior 
         * @return        A HTML table row 
         */ 
        function pi_list_row($c)        { 
                $editPanel = $this->pi_getEditPanel(); 
                if ($editPanel)        $editPanel='<TD>'.$editPanel.'</TD>'; 

                return '<tr'.($c%2 ? $this->pi_classParam('listrow-odd') : '').'> 
                                <td border="1"><p>'.$this->getFieldContent('status').'</p></td> 
                                <td><p>'.$this->getFieldContent('uid').'</p></td> 
                                <td width="80" valign="top"><p>'.$this->getFieldContent('datum').'</p></td> 
                                <td valign="top"><p>'.$this->getFieldContent('adm').'</p></td> 

                                <td width="120" valign="top"><p>'.substr($this->getFieldContent('kundenname'), 0, 15).'</p></td> 
                                <td valign="top"><p>'.$this->getFieldContent('plz').'</p></td> 
                                <td valign="top"><p>'.$this->getFieldContent('ort').'</p></td> 
                        </tr>'; 
        } 
        /** 
         * Returns a table row with column names of the table 
         * 
         * @return        A HTML table row 
         */ 
        function pi_list_header()        { 
                return '<tr'.$this->pi_classParam('listrow-header').'> 
                                <td><p>'.$this->getFieldHeader_sortLink('status').'</p></td> 
                                <td><p>'.$this->getFieldHeader_sortLink('uid').'</p></td> 
                                <td nowrap><p>'.$this->getFieldHeader_sortLink('datum').'</p></td> 
                                <td nowrap><p>'.$this->getFieldHeader_sortLink('adm').'</p></td> 

                                <td nowrap><p>'.$this->getFieldHeader_sortLink('kundenname').'</p></td> 
                                <td border=1><p>'.$this->getFieldHeader_sortLink('plz').'</p></td> 
                                <td><p>'.$this->getFieldHeader_sortLink('ort').'</p></td> 


                        </tr>'; 
        } 
        /** 
         * Returns the content of a given field 
         * 
         * @param        string                $fN: name of table field 
         * @return        Value of the field 
         */ 
        function getFieldContent($fN)        { 
                switch($fN) { 
                        case 'uid': 
                                return $this->pi_list_linkSingle($this->internal['currentRow'][$fN],$this->internal['currentRow']['uid'],0);        // The "1" means that the display of single items is CACHED! Set to zero to disable caching. 
                        break; 

                        case "datum": 
                                        // For a numbers-only date, use something like: %d-%m-%y 
                                //return date("y-m-d",$this->internal['currentRow']['datum']); 
                                //return strftime('%a %e. %b %Y',$this->internal['currentRow']['datum']); 
                                return $this->internal['currentRow']['datum']; 
                        break; 
                        default: 
                                return $this->internal['currentRow'][$fN]; 
                        break; 
                } 
        } 
        /** 
         * Returns the label for a fieldname from local language array 
         * 
         * @param        [type]                $fN: ... 
         * @return        [type]                ... 
         */ 
        function getFieldHeader($fN)        { 
                switch($fN) { 

                        default: 
                                return $this->pi_getLL('listFieldHeader_'.$fN,'['.$fN.']'); 
                        break; 
                } 
        } 

        /** 
         * Returns a sorting link for a column header 
         * 
         * @param        string                $fN: Fieldname 
         * @return        The fieldlabel wrapped in link that contains sorting vars 
         */ 
        function getFieldHeader_sortLink($fN)        { 
                return $this->pi_linkTP_keepPIvars($this->getFieldHeader($fN),array('sort'=>$fN.':'.($this->internal['descFlag']?0:1))); 
        } 
} 



if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/adm_report/pi1/class.tx_admreport_pi1.php'])        { 
        include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/adm_report/pi1/class.tx_admreport_pi1.php']); 
} 

?>

Das Feld soll den Eintrag im Tabellenfeld "status" ändern und soll ein Dropdown sein, wo mehrere Einträge ausgewählt werden können. Dann soll ein Update erfolgen, sodass der ausgwählte Wert in das Tabellefeld "status" geschrieben wird.

Leider sind meine Kenntnisse nicht sehr weitreichend um das einzubauen.

Das Feld soll in diesen Bereicht eingebaut werden:

PHP:
function singleView($content,$conf)     { 
                $this->conf=$conf; 
                $this->pi_setPiVarDefaults(); 
                $this->pi_loadLL(); 
                 
         
// This sets the title of the page for use in indexed search results: 
  
if ($this->internal['currentRow']['title'])      
$GLOBALS['TSFE']->indexedDocTitle=$this->internal['currentRow']['title']; 
         
$content='<div'.$this->pi_classParam('singleView').'> 
  
  
  
<p'.$this->pi_classParam("singleViewField-status").'> 
<strong>'.$this->getFieldHeader('status').':</strong> '.$this->getFieldContent('status').'</p> 
  
[....gekürzt...]  
                                 
<p>'.$this->pi_list_linkSingle($this->pi_getLL('back','Back'),0).'</p></div>'. 
$this->pi_getEditPanel(); 
         
return $content; 
  
}

Vielen Dank

Gruß
Thorsten