Form adataival adatbázis lekérdezés és az eredmény megjelenítése

tesele képe

Sziasztok!

Találtam egy témat ahol szinte pontosan ezt kérdezi valaki, de csak saját maga írt rá, miszerint sikerült megoldani. Részben nekem is működik, de sajnos ez kevés.

Saját modulban létrehozok egy formot ami bekér adatot, amit aztán egy adatbázis lekérdezésben használok és az eredményt szeretném megjeleníteni.

A submit függvényben végrehajtom a lekérdezést és megjelenítem az adatokat (ez nekem itt csak a drupal_set_message-el sikerült.)

Ha nem használom a redirectet akkor az eredmény alatt újra kirakja a formot és ezt nem szeretném.

Redirectel egy majdnem üres oldalra irányitva (csak egy link van rajta a főoldalra) már majdnem jó, egy táblázatban megjelennek az adatokat, viszont amikor az eredmény sok rekordból áll jó volna lapozhatóvá tenni.

Erre a tablesort_sql() és a theme_pager() függvényeket használnám de ez itt nekem egyik módon sem működik.

A kérdésem az volna, hogy jó irányba indultam-e és akkor merre tovább, vagy pedig valami más módon kellene ezt a feladatot megoldani, esetleg átadni a paramétereket egy másik oldalnak és ott elvégezni a megjelenítést?

Drupal verzió: 
lili_ képe

$items["osszesdolgozo"]=array(
    "title" => "Munkatársak",
    "page callback"=>"szervegyseg_osszesszemely",
    "access arguments" => array("access content"),
    "type" => MENU_CALLBACK,
  );
 
 
function szervegyseg_osszesszemely(){
 
  $tok="";
  $sql ="SELECT * FROM {szemely} order by name";
 
      $rows   = array();
      $header = array('','','Név');
      $sql .= tablesort_sql($header,NULL,'timestamp');
 
 
      $rs = pager_query($sql, 25); 
      while($data = db_fetch_array($rs)){
         $rows[] = array(
                array("data"=>$kev),
                array("data"=>$kevi),
                array("data"=>l($data["name"],sprintf("szemely/%d",$data["id"]))),
 
                );
      }
 
      $tik = theme('table',$header,$rows);
      $tik .=theme('pager',NULL,25,0);
      $tok.=$tik;
 
return $tok;    
 
}
0
0

mini

tesele képe

Köszönöm a gyors választ, de maga a lapozás nekem is megy, viszont ebben a kódban nincsen form. Nekem form-al nem akar sikerülni. ha ugyanezt beleírom a submit függvénybe úgy már nem jó.

0
0
tesele képe

Te segítettél, viszont egy másik fórumtémában találtam meg a választ. A logikáját nem értettem dolognak, nem tudtam összehozni a lapozást és a form-ot, de a egy másik kérdésre adott válaszod, és a saját keresőd kódja megvilágosított.

Saját search form

Végülis a lényeg, hogy a menüpont létrehozásánál a page callback nem egyből a form mint mondjuk itt

...
  $items['myform'] = array(
    'title'            => 'My form',
    'page callback'    => 'drupal_get_form',
    'page arguments'   => array('mymodule_myform_form'),
    'access arguments' => array('admin'),
    'file' => 'mymodule.myform.inc'
  );
...

hanem egy saját függvény mint itt:

...
  $items['myform2'] = array(
    'title'            => 'My Form 2',
    'page callback'    => 'mymodule_myform2_page',
    'access arguments' => array('admin'),
    'file' => 'mymodule.myform2.inc'
  );
...

és a mymodule.myform2.inc fájlban aztán a feltételtől függően vagy a form-ot állítom elő vagy ha már volt eredmény akkor azt iratom ki

...
//mymodule.myform2.inc file
function mymodule_myform2_page()
//
  if ( FELTÉTEL) {
    $content = "EREDMÉNY KIÍRÁSA";
  } else {
    $content = drupal_get_form("mymodule_myform2_form");}
  }
  return $content ;
...

Csak azért írtam le hátha valakinek segítség, bár lehet, hogy csak nekem esett le kicsit nehezebben. Utólag már nagyon egyszerű, de az nem volt világos a számomra, hogy hogyan hozzam össze egy oldalon belül a formot és a lekérdezés eredményét pager-el megjelenítve.

0
0