hi!
Adott egy korábbi kódminta:
<?php function listazas() { $header = array( array('data' => t('User name'), 'field' => 'u.name', 'sort' => 'asc'), array('data' => t('Mail'), 'field' => 'u.mail'), array('data' => t('Operations'), 'colspan' => 2), ); $form['header'] = array( '#type' => 'value', '#value' => $header, ); $sql = 'SELECT * FROM {users} u WHERE u.uid > 0'; $sql .= tablesort_sql($header); $result = pager_query($sql, 50, 0); $form['user']['#tree'] = TRUE; while ($user = db_fetch_object($result)) { $form['user'][$user->uid] = users_row($user); } $form['pager'] = array('#value' => theme('pager', NULL, 50, 0)); $form['#theme'] = 'listazas'; return $form; } function users_row($user) { $form['name'] = array( '#type' => 'markup', '#value' => $user->name, ); $form['mail'] = array( '#type' => 'markup', '#value' => $user->mail, ); $edit_link = (0) ? '' : l(t('Edit'), 'lista/edit/'. $user->uid); $form['edit_user'] = array( '#type' => 'markup', '#value' => $edit_link, ); $delete_link = (0) ? '' : l(t('Delete'), 'lista/delete/'. $user->uid); $form['delete_user'] = array( '#type' => 'markup', '#value' => $delete_link, ); return $form; } function theme_listazas($form) { $header = $form['header']['#value']; $rows = array(); foreach (element_children($form['user']) as $key) { // Build the table row. $rows[] = array( array('data' => drupal_render($form['user'][$key]['name'])), array('data' => drupal_render($form['user'][$key]['mail'])), array('data' => drupal_render($form['user'][$key]['edit_user'])), array('data' => drupal_render($form['user'][$key]['delete_user'])), ); } $output = theme('table', $header, $rows); if ($form['pager']['#value']) { $output .= drupal_render($form['pager']); } $output .= drupal_render($form); return $output; } ?>
Ezt hogyan célszerű módosítani, hogy a listázás fölé (v. alá mindegy) lehessen egy kereső "inputbox"-ot tenni egy submit button-nal, amire kattintva az SQL listát szűkíti.
G.
Drupal verzió:
Fórum:
így oldottam meg
így oldottam meg:
Működik, bár nem biztos hogy a legelegánsabb.
G.
átfutottam
én átfutottam a kódot, érdekes :)
és értettem is hogyan is működne
én úgy szoktam vagy csinálom, h form-ba megadott szöveget, nevet stb. nem az URL-ben viszem át hanem használom a $_SESSION tömböt, és a form alapértéke a tömb megfelelő eleme lesz, csak figyelni kell, h be van-e állítva az értéke...
ez csak egy tipp, próbáld ki egyszer
mini
ajánlás
azért gondoltam a leírt megoldást, mert ez volt az ajánlás korábban.
itt a fórumon javasolták, hogy a drupal alapmoduljai is így működnek és nekem is tetszett. :)
G.
felhasználó és nem oldal állapot
Munkamenetben felhasználó állapotot szokás tárolni. Az oldal állapotát nem túl egészséges, mivel egy felhasználó futtathat egyszerre több böngésző ablakot is. (mint ahogyan én is teszem most ezt itt)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
ilyesmi?
vmi ilyesmire gondoltatok?
Így nem kell külön menüpont, hanem az eredeti függvényben levizsgálni a $_SESSION['k_nev'] értékét.
Azt hiszem lili_ is erre gondolt.
A "nem túl egészséges"-el az esetleges SQL injection lehetőségére gondoltál?
G.
Nem.
De ez is oda volt írva:
Ha a keresés oldalad session-ben tárolja a keresés paramétereit, akkor nincs arra lehetőséged, hogy az oldal állapotát küldd el.
Példa: ha valakinek el akarsz küldeni egy keresési listát, hogy ha a híreket szűröd és azok közül is a publikáltakat, akkor a harmadik az az oldal, amit keresel. Ha session-ben utaznak az adatok, akkor lesz egy http:domain/search linked, ami semmi infót nem tartalmaz a keresés állapotáról, mert minden nálad van a saját sessionödben - a szűrés beállításai. Akinek küldöd annál nem lesz meg, mert saját, egyedi sessionje van.
Ellenben: http:domain/search/type/page/published/1 urlben benne van minden fontos adat, tőled függetlenül. Ha két böngésződ van nyitva (vagy két tab, és miért ne), akkor mindegyikben a /search/ url szerepel vagy http:domain/search/type/page/published/1 és http:domain/search/type/page/published/0.
Nem vesznek össze, de a lista más. Mert az url-ben benne van a lap állapota, az, hogy most szűrve van, és pontosan mely szempontok szerint.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
egy kicsit megkeveredtem...
egy kicsit megkeveredtem... :)
akkor az eredeti megoldásnál maradjak (url-ben átvitel)?
bocs!
G.
maradj
maradhatsz nyugodtan, csak írtam h másképpen is lehet,
amint lesz időm majd írok egy kis rövidke példát...
mini
másképp is lehet,
de nem úgy kell. :)
-
clear: both;
és akkor hogyan is kell
akkor hogyan kell, ha már ennyire nem így
amúgy már megszoktam, h bármit is beírok nem így kell nem úgy kell
de ebbe nem megyek ismét bele
miért amit én javaslok mi a baj vele?
nálam szépen működik...
mini
Tégy egy próbát
Nézd meg ezt az oldalt:
http://www.menetrendek.hu/cgi-bin/menetrend/html.cgi
Keresd ki a Pécs-Budapesi buszokat. Majd annak az url-jét küldd el nekem, hogy én is megnézhessem.
--
Szabó Dénes - Internode.hu - Munkára fogott weblapok
nem a sessionbe tesszük az ilyesmit
az is szépen működik, hogy phpt égetünk egy node bodyjába, mégse csináljuk, mert nem az a dolgok módja. hogy miért nem úgy kell, hogy sessionbe pakolászod, azt meg már elmagyarázták korábban, csak nem figyeltél vagy direkt nem akarod megérteni az okokat.
sokmindent lehet sokféleképpen, a legtöbb dologra vannak szabályok, hogy hogyan kell azt csinálni. van formAPI, vannak szabályai, nem véletlenül. amit a sessionnel bűvészkedsz lehet, hogy működik ugyan, de azért van a $form_state['values'] hogy azt használjad, mert a sessionos megoldás az gány.
-
clear: both;
ok
értem
mini
<?php$sql = 'SELECT * FROM
Ilyet nem csinálunk, mert ez egy biztonsági rés.
Ehelyett:
Két kérdés
Miért nem használsz "?
Miért rakod külön hozzá a % jelet?
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
gyors vagy-e?
A ' kiertekelese gyorsabb mint a " :) es nem ertekeli ki a belekevert valtozokat.
En az olvashatosag miatt hasznalom a lekerdezeseknel a ".
A % meg gondolom kevesebbet kell gepelni ;), de a te megoldasod szerintem olvashatobb.
---
http://drupalaton.hu
Szűk keresztmetszet
Érdekelne, hogy vajon a kód ezen része által okozott sebesség csökkenés miatti anyagi plusz költség hogyan aránylik a plusz munkaórák költségével ami az ilyen kód javításához szükséges. ;) Tehát nem mondanám azt, hogy felesleges vagy rossz beidegződés lenne ez, bár vannak olyan vélemények, hogy bizonyos esetekben nem gyorsabb a szimpla idézőjel. http://www.sematopia.com/2007/08/php-double-quotes-vs-single-quotes/#com... Szóval én ilyen esetben nem látom értelmét.
Arról meg most ne beszéljünk, hogy a db_query() úgy is rátol egy preg_replace_callback()-t ami nem a sebességéről híres. Ráadásul azon a lekérdezésen is van mit csiszolni (http://forge.mysql.com/wiki/Top10SQLPerformanceTips).
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
1.) azért, mert biztosan nem
1.) azért, mert biztosan nem akarom, hogy bármi is bele legyen helyettesítve a stringbe (tudom, hogy nincs benne olyan, de ez egy plusz jelzés, elsősorban magamnak)
2.) ez jogos