ich versuche REXPoll für 4.3.1 anzupassen. Leider weiss ich kaum was über die internen Befehle von Redaxo, und auch nicht viel über objektorientiertes Programmieren. PHP kann ich aber einigermassen.
Ich bin recht weit gekommen, aber nun kommt ständig die Fehlermeldung "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 2' at line 1" wenn ich was speichern oder übernehmen will. Auch sind die Buttons "Speichern" etc. dann nicht mehr sichtbar. Die URL wechselt zu index.php, statt die GET-Variablen anzuzeigen, und es wird nichts in die DB geschrieben. Offenbar wird beim versuchten Speichern die Variable $fID nicht übergeben, und ich verstehe nicht warum. Unten der (gekürzte) Code, meine Änderungen sind gekennzeichnet.
Seltsam ist dass alles funktioniert wenn ich $fID beispielsweise gleich 9 setze, UND $fID ist immer korrekt im Programm (ich kann $fID per echo aufrufen, und die Variable wird korrekt angezeigt - siehe Code). Aber irgendwie funktionierts doch nicht richtig.
Um Hilfe wäre ich sehr dankbar.
Hier ein Ausschnitt des Codes:
Code: Alles auswählen
<?php
//------------------------------> Parameter
$Basedir = dirname(__FILE__);
$field_id = rex_request('field_id', 'int');
//------------------------------> Eintragsliste
if ($func == '')
{
$list = new rex_list('SELECT * FROM '.$REX['ADDON']['dbpref']['rexpoll'].'rexpoll');
$imgHeader = '<a href="'. $list->getUrl(array('func' => 'add')) .'"><img src="media/metainfo_plus.gif" alt="add" title="add" /></a>';
$list->addColumn( $imgHeader,
'<img src="media/metainfo.gif" alt="field" title="field" />',
0,
array('<th class="rex-icon">###VALUE###</th>',
'<td class="rex-icon">###VALUE###</td>')
);
$list->setColumnParams ( $imgHeader,
array('func' => 'edit', 'fID' => '###fID###')
);
$list->setColumnLabel('fID', "ID");
$list->setColumnLayout ( 'fID',
array('<th class="rex-icon">###VALUE###</th>','<td class="rex-icon">###VALUE###</td>')
);
$list->setColumnLabel('fNAME', "Fragen");
$list->setColumnParams('fNAME', array('func' => 'edit', 'fID' => '###fID###'));
$list->setColumnLabel('fFIELDS', "Antworten");
$list->show();
}
//------------------------------> Formular
elseif ($func == 'edit' || $func == 'add')
{
// ******* NEU BEGINN ********
if ($func == 'edit') $fID = $_GET['fID'];
if ($func == 'add') $fID = intVal($fID);
// echo (int)$fID; // GIBT $fID IMMER KORREKT AUS
// $fID = 9; // DAMIT FUNKTIONIERT ALLES BESTENS - ES WERDEN ABER NATÜRLICH IMMER NUR DIE DATEN VON ID 9 ANGEZEIGT
// ******* NEU ENDE ********
$form = new rex_form($REX['ADDON']['dbpref']['rexpoll']."rexpoll","REXpoll","fID=".$fID,"post",false);
$field = &$form->addTextField('fNAME');
$field->setLabel("Frage");
$field = &$form->addTextAreaField('fFIELDS');
$field->setLabel("Antworten");
if($func == 'edit')
{ $form->addParam('fID', $fID);
}
$form->show();
}
?>