Riki Posted December 19, 2006 Report Share Posted December 19, 2006 Zinu, ka starp tiem mainīgo vērtības nevar nosūtīt, bet varbūt tomēr ir kāda izeja? Ir man datubāze, kur vienā tabulā ir User_id, bet citā tabulā User_name. Ir forma, kur lietojs ievada User_name un vēl visu citu privātziņas nosūtīšanai citam jūzerim. Pēc User_name ievadīšanas vajag izsaukt skriptu, kas atrod attiecīgi User_id no datubāzes: echo "<input type='hidden' name='user_id' />"; echo "<input type='text' onchange='java script:userIDpieskirt(".atrastid(te vajag nosūtīt user_name vērtību ).");' name='user_name' />"; Pirms tam ir izveidotas funkacijas: echo "<script language=\"javascript\">\n"; echo "<!--\n"; echo "function userIDpieskirt(r_uid) {\n"; echo "document.coolsus.user_id.value = r_uid;\n"; echo "}\n"; echo "-->\n"; echo "</script>\n"; function atrastid($lietotaja_vards) { $xoopsDB =& Database::getInstance(); $resultats = $xoopsDB->query("SELECT uid FROM ".$xoopsDB->prefix("users")." WHERE uname = '". userIDnoteikt() ."'"); $rinda = ($xoopsDB->fetchRow($resultats)); $rinda2=$rinda[0]; settype ($rinda2, string); return $rinda2; } Mēģināju 2 variantus: 1) funkcijai "atrastid" nodot vērtību $lietotaja_vards. Tas nestrādā, jo nevar nodot vērtību ar php kamēr, nav izpildīts submit. 2) select komantā WHERE= norādīt Javascript funkciju userIDnoteikt. Tas nestrādā, jo nevar nekādi iegūt Javascripta atgriezto vērtību. Rezultātā sēžu jau 3. dienu pie dažām rindiņām. ;(( Link to comment Share on other sites More sharing options...
andrisp Posted December 19, 2006 Report Share Posted December 19, 2006 javascript xmlhttprequest (ajax). http://developer.mozilla.org/en/docs/AJAX:Getting_Started Link to comment Share on other sites More sharing options...
bubu Posted December 19, 2006 Report Share Posted December 19, 2006 Tev manuprāt nav skaidra Klienta-servera arhitektūra (ja jau centies no SQL izsaukt Javascript funkciju). Palasi šo: http://en.wikipedia.org/wiki/Client-server_architecture (klients=browseris/javascripts, serveris=webserveris/php) Link to comment Share on other sites More sharing options...
Riki Posted December 20, 2006 Author Report Share Posted December 20, 2006 Par Ajax man pagaidām nav nekādas saprašanas, bet būs jāpaskatās. Par klienta-servera arhitektūru palasīju. Cik saprotu, tad tai problēmai vienkāršs risinājums neeksistē? ;( Link to comment Share on other sites More sharing options...
hmnc Posted December 20, 2006 Report Share Posted December 20, 2006 visām problēmām ir vienkārši risinājumi, ja vien tos nesarežģī Link to comment Share on other sites More sharing options...
Stopp Posted December 20, 2006 Report Share Posted December 20, 2006 1) Pārbaudi labāk nevis pie onchange, bet pie onblur, citādi tev uz serveri ies daudz, daudz pieprasījumu. 2) Drošāk ir pārbaudīt to id pēc submita. Kāpēc tu gribi pirms? Tāpat tu pēc tam ar formu to id padod. Link to comment Share on other sites More sharing options...
Riki Posted December 21, 2006 Author Report Share Posted December 21, 2006 1. Mēģināju gan pie onblur, gan pie onchange. Šajā gadījumā tas nemaina lietas būtību. 2. Pirms submita man to vajag apstrādāt tāpēc, ka tas viss ir iekļauts jau gatavā lielā CMS sistēmā, un pēc submita tiek izsauktas gatavās funkcijas no šīs sistēmas kodola, kurām vēl neesmu pilnībā izurbies cauri, un ko arī negribu mainīt, jo šīs funcijas izsaucas daudzās vietās. Link to comment Share on other sites More sharing options...
Recommended Posts