Submit eseményben lekérdezési adatok visszaírása

olali képe

Sziasztok!

Kezdő Drupal-os vagyok, és következő a kérdésem.
Van egy fejlesztett modulom amiben lekérdezést csinálok egy oracle-s adatbázisból.
Szeretném ha a submit eseményben a lekérdezés adatait viszontlátni.
Hogyan csináljam?

Drupal verzió: 
pp képe

pl. értelmesen teszed fel a kérdést.
Nincs "submit esemény". Kódpéldát mutatnál lehet előrébb lennénk.
Mit jelent viszontlátni? Már találkoztál velük? De hol?

pp

0
0
eMeLA képe

Túllépve a fogalmazáson, a tartalom beküldés után szeretnéd még mondjuk az adatbázis mentés előtt elérni a form beküldött adatait, vagy a form-ba szeretnéd elhelyezni az adataidat, hogy mentéskor már ott legyenek ?

Az előbbihez a hook_nodeapi() az utóbbihoz hook_form_alter() tanulmányozását ajánlom.
A leírásokat itt megtalálod: http://api.drupal.org/api/drupal

0
0

...mit tudok: http://web.termuves.hu

olali képe

Van egy formom, amin a lekérdezés ürlapjának adatait és a lekérdezés eredményét szeretném látni az adatok bevitele után.

function lekerdezes_szamlak(&$form_state){
/*--------------------------------------*/
$form['description'] = array(
'#type' => 'item',
'#title' => t('Számla lekérdezés'),
);

// Partner kód textfield;
$form['partnerkod'] = array(
'#type' => 'textfield',
'#title' => t('Partner kód'),
'#size' => 15,
'#maxlength' => 10,
'#default_value' => $node->partnerkod,
);

// Választás radios
$form['valasztas'] = array(
'#type' => 'radios',
'#title' => t(''),
'#default_value' => variable_get('nowagent_lekerdezes_szamlak_'. $form['#valasztas']->type,
'#options' => array(0 => t('Lejárt'), 1 => t('Nyitott'), 2 => t('Összes') ),
'#size' => 15,
'#maxlength' => 10,
);

// Lekérdezés submit
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Lekérdezés',
);

return $form;
}

function lekerdezes_szamlak_submit( $from, &$form_state){
/* ------------------------------------------------------------- */

$partnerkod = $form_state['values']['partnerkod'];

$dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.111)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracle)
(INSTANCE_NAME = oracle)))";

$conn = oci_connect('oracleuser', 'passwd', $dbstr);

if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// query sztring
$sqlstring = "SELECT * FROM table where mezo = $partnerkod";

// végrehajtás
$stid = oci_parse($conn, $sqlstring );
oci_execute($stid);

// kimeneti tábla
$s = "partnerkod:" . $partnerkod . "
";
$s .= "
";
$s .= "";
while (($row = oci_fetch_array($stid, OCI_BOTH)))
{
$s .= "";
$s .= "".l($row[0],'/nowagent/lekerdezes/szamlak1/?szlaid='. $row[0] )."".$row[1]."";
$s .= "".$row[2]."";
$s .= "".$row[3]."";
$s .= "";
}
$s .= "";

oci_free_statement($stid);
oci_close($conn);

drupal_set_message('

'.print_r($s, true).'

');

return $form;
}

0
0
pp képe

én külön választanám a dolgokat.

Készítenék egy oldalt, ahol megjelenik az űrlap és a paraméterektől függően megjelenik a lista.
Ezt ugye egy függvény állítja elő ami megkapja a szükséges paramétereket, amit továbbtolhat az űrlap megjelenítőhöz és a táblázat megjelenítőhöz.

A submit pedig nem csinál mást, mint áttolja az oldalt a megadott útvonalra a megfelelő paraméterekkel.

Mivel neked csak partnerkódod van, ezért kb. úgy fog kinézni az útvonalad, hogy /lekerdezes/[partnerkod]

Nem tudom mennyire érthető így a dolog.

pp

0
0
olali képe

Értem amit javasolsz.
A következők miatt szeretném egy oldalon látni:
- látszanak a lekérdezés paraméterei ( bár ez kiíratható )
- kezelhetőbb a lekérdezés, ha fennmarad az űrlap az értékeivel

Gondolom a default_value-ba kellene az értékeket visszaadni, de hol?

0
0
pp képe

tehát még egyszer: külön választod a megjelenítést és a feldolgozást. Az űrlap megjelenítése és a táblázat megjelenítése az egy oldalon lenne. A feldolgozás pedig csak egy átirányítás lenne a megfelelő oldalra.

0
0
olali képe

Oké.
Most már tiszta. Megnézem.

0
0
olali képe

Köszönöm.
Működik.

0
0