VirtueMart felugró ablak helyett input
Üdv!
Segítséget szeretnék kérni a következőben. Van egy webshop amiben az admin felületen kilistázza a termékeket.A listában az ár oszlopban ha rá klikkelek egy termék árára akkor felugrik egy ablak és át tudom írni az árat. Ezt szeretném én egy input mezőre cserélni de nem igazán jövök rá a titok nyitjára.
Ime a codeha jól értelmezem a $price és $tmp_cell az ár összeállítására van a $listObj pedig a kiiratás és a változtatásra szolgál.
Viszont már babrálom órák óta össze vissza a kódot de eddig max azt értem el, hogy kirakta az input mezőt és szépen beleírta a php kódot. Megköszönöm ha valaki rá irányítana a dologra:)
■ Segítséget szeretnék kérni a következőben. Van egy webshop amiben az admin felületen kilistázza a termékeket.A listában az ár oszlopban ha rá klikkelek egy termék árára akkor felugrik egy ablak és át tudom írni az árat. Ezt szeretném én egy input mezőre cserélni de nem igazán jövök rá a titok nyitjára.
Ime a code
$price = $ps_product->getPriceByShopperGroup( $db->f('product_id'), '');
$tmp_cell = '<span class="editable priceform">'.$GLOBALS['CURRENCY_DISPLAY']->getValue( $price['product_price']).' '.$price['product_currency'];
$tmp_cell .= ' </span>';
$listObj->addCell( $tmp_cell, 'id="'.$db->f('product_id').'" onclick="showPriceForm(this.id)" title="'.$VM_LANG->_('PHPSHOP_PRICE_FORM_LBL').'"' );
Viszont már babrálom órák óta össze vissza a kódot de eddig max azt értem el, hogy kirakta az input mezőt és szépen beleírta a php kódot. Megköszönöm ha valaki rá irányítana a dologra:)
Na mégegyszer
Egy biztos: a kód össze-vissza babrálása nem fog előbbre vinni, javaslom, hogy inkább egy debuggert alkalmazz a probléma megoldása érdekében, mert abban meg tudod tekinteni, melyik változónak mi az értéke. Ha guglizni szeretnél, akkor Xdebug vagy Zend Debugger.
Pontosabban
Át kell írni
Értelmezésem szerint az történik, hogy van egy táblázat generáló rendszere a VirtueMartnak, amibe cellákat lehet betologatni, az addCell második paramétere pedig a cella (
<td>
) HTML paramétereit tartalmazza. Tehát sejtésem szerint Neked azt kell csinálnod, hogy a$tmpcell
változó tartalmát változtatod meg. Ezen felül azonClick
eseményt le kell venned a celláról, mert az csinálja a felugró ablakot.Én ilyesmivel próbálkoznék:
Más: a kódból nekem gyanús, hogy nem túl magas szintű elvek mentén készült, ezért simán elképzelhetőnek tartok benne biztonsági hibákat. Ezt támasztja alá, hogy februárban fedeztek fel egy nagyon ronda SQL injection hibát benne. Ilyesminek egy jól megtervezett rendszernél nem szabadna előjönnie!
RE
Az a JavaScript az milyen.Őszintén szólva életemben nem foglalkoztam javascriptel. PHP-ban eljátszadozom ha látok valamire konkrét példát.
Az említett hibát javították már a legfrissebb verziót használom ebből.
Nehéz lesz
Ami a biztonságot illeti, lehet, hogy ezt az egy biztonsági hibát javították, de ha egy programnak rossz a kódminősége, folyamatosan lesznek vele bajok. Ha módosítasz a rendszermagon, ráadásul elesel a triviális frissítés lehetőségétől.
Sejtettem hogy nem könnyű
var priceDlg = null;
function showPriceForm(prodId) {
)
Gondolom ugyan ezt fel lehetne használni csak az egyes mezőknél ki kell rakatni vele egy submit gombot és ha rá klikk akkor lefuttatja ezt a js scriptet.
Passz
re