ganz einfache Formular Funktion
am 27.03.2008 - 20:09 Uhr in
Hallo liebe Drupalcenter Gemeinde !
Ich arbeite seit ca 1 Jahr so mehr oder weniger an einem Modul, welches nur für eine sehr kleine Gruppe von Leuten Wert, hat dieser aber natürlich UNSCHÄTZBAR hoch ! ;)
Nun wollte ich dort eine kleine Verbesserung durchführen. Im Grunde ganz einfach deswegen werd ich das drum rum mal weglassen.
Ich habe mittels des _menu hooks mir eine Seite gebaut die gewisse Daten anzeigt. Diese Daten werden aus verschiedensten Mysql Tabellen ausgelesen. Nun möchte ich einen Filter einbauen mit dem ich ein Feld quasi filtern kann. Ich habe nun 2 Probleme. Ich habe mir mittels des folgenden Codes mein Filterfeld eingebaut. Komme dann auch per $_POST['edit']['title_filter'] an die Daten ran nach dem ich submitted habe.
1. Nun würde ich aber gerne haben das diese Daten dann wieder in der Form drinnen stehen (also vorbelegt sind). Also hab ich das in die Variable tf reingeschrieben und dann wie hier abgebildet als default value gesetzt. Funktioniert aber nicht.
2. Wie übermittle ich den Wert wenn ich unten auf den Pager eine Seite weiter drücke ? Das ist ja nen ganz andres Formular sicherlich ?
Es wäre wirklich nett wenn mir jemand irgendwie zumindest die richtige Richtung weist, da ich schon ca 4 h mich durch zich Beispiele geackter habe aber nix finde. Ich habe auch die Api Doku für die Forms gelesn. ICh finde immer nur wie ich Forms erstelle Theme usw. Aber nicht wie es dann ab dem submitten weiter geht.
Grüße vom Rupat !
$form['title_filter'] = array(
'#type' => 'textfield',
'#title' => t('title filter'),
'#default_value' => $tf,
'#size' => 30,
'#maxlength' => 30,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Los!'),
);
$output = drupal_get_form('testform',$form);
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, 30, 0);
- Anmelden oder Registrieren um Kommentare zu schreiben
hast du denn <?phpfunction
am 27.03.2008 - 21:26 Uhr
hast du denn
<?php
function testform_submit($form_id, $form_values) {}
?>
Wenn du diese Funktion benutzt hast du die Variable $form_values in der alle Formwerte gespeichert sind,
dann brauchst du $_POST['edit']['title_filter'] nicht mehr.
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
Ja habe ich
am 28.03.2008 - 01:57 Uhr
Ja habe ich , allerdings weiss ich nicht so recht was da rein soll. So wie ich das verstanden habe ist die Fkt ja dazu da wenn ich mit den ergebnissen etwas machen will. Also inne DB eintragen oder verändern oder sonstwas. Ich möchte sie ja in der selben Seite wieder verwenden. Und naja im Moment steht bei mir der Rohling der Funktion im Quelltext so hier:
function testform_submit($form_id, $form_values) {
}
Tja keine Ahnung, mit $POST komme ich übrigens ran an die Daten aber ich wollte sie ja dann in einer SQL anweisung per LIKE und n bissi umgebastelt also mit % Zeichen dann einarbeiten aber das db_query scheint immer die Like anweisung zu ignorieren. Weiss da jemand was ? Versteh ich alles nicht, ich will doch so ne einfache Sache, das kann doch alles nicht so schwer sein ! Hier nochmal mein kompletter Code der FKT:
function doubles($filter=null) {
if (!empty($_POST['edit']))
$post = $_POST['edit'];
$list[]=array('');
$rows[] = array('');
$header = array(array('data'=>t('Genre'),'field'=>'td.name'), array('data'=>t('Title'),'field'=>'n.title'), array('data'=>t('date'),'field'=>'n.created'), array('data'=>t('average voting'),'field'=>'avg', 'sort' => 'asc'), array('data'=>t('votecount'),'field'=>'count'));
$select = "SELECT td.name,n.title,n.created,n.nid,avg(nv.vote)as avg,count(n.nid) as count ";
$from = "FROM node n, nodevote nv, term_node tn, term_data td ";
$where = "WHERE n.type='mischungxl'
AND n.status=1
AND n.nid=nv.nid
AND tn.nid=n.nid
AND tn.tid=td.tid ";
$groupby = "GROUP BY n.nid ";
$sort = tablesort_sql($header);
if (!empty($post) && (!empty($post['genre_filter'])))
$gf=$post['genre_filter'];
if (!empty($post) && (!empty($post['title_filter']))) {
$tf=(string)$post['title_filter'];
$l_sLike = '%'.preg_replace('/ /','%',$tf).'%';
$where .= "AND n.title LIKE '$l_sLike' ";
}
$query = $select.$from.$where.$groupby.$sort;
$count_select = "SELECT count(distinct(n.nid)) ";
$count_query = $count_select.$from.$where;
$result_set = pager_query($query, 30, 0, $count_query);
//echo $query;
while ($obj = db_fetch_object($result_set)){
$rows[] = array($obj->name,l($obj->title, "node/".$obj->nid), date('d.m.Y',$obj->created), round($obj->avg), $obj->count);
}
$form['genre_filter'] = array(
'#type' => 'textfield',
'#title' => t('genre filter'),
'#default_value' => $gf,
'#value' => $gf,
'#size' => 12,
'#maxlength' => 30,
);
$form['title_filter'] = array(
'#type' => 'textfield',
'#title' => t('title filter'),
'#default_value' => $tf,
'#size' => 30,
'#maxlength' => 30,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Los!'),
);
$output = $form_values;
$output .=drupal_get_form('testform',$form);
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, 30, 0);
return $output;
}
function testform_submit($form_id, $form_values) {
/*drupal_goto('mischungxl/niasgood');*/
/*$_POST=$form_values;*/
}
die unwichtigen sachen hab ich mal weggelassen