Jump to content
php.lv forumi

imop

Reģistrētie lietotāji
  • Posts

    30
  • Joined

  • Last visited

Everything posted by imop

  1. patiesībā jau ir tā ka man tā funkcijas ir gaužām svešas, tapēc jau vēršos šeit pēc padoma un vēlēdot kādas mazliet reālākas atbildes. Piemēram kur paskatāities, palasīt info kā šādas sakarības var izveidot! Veidoju ko tādu pirmo reizi!
  2. Tie varianti tika izmēģināti un neviens īsti nestrādā, ja skaitlis ir: 101.90 tad man jāizvada - viens simts viens lats, 90 santīmi patreiz ir - viens simts viens lats, 90 santims ja skaitlis ir 101.91 tad jāizvada - viens simts viens lats, 91 santīms patreiz ir - viens simts viens lati, 90 santīmi ja skaitlis ir 80.10 tad jāizvada - astoņdesmit lati, 10 santīmi patreiz ir - astoņdesmit lats, 10 santims utt. vajadzētu lai skripts atšķir kad ir desmiti / simti / tulkstoši - man nekādigi nesanāk Šeit viss skripts: <?php /** * o------------------------------------------------------------------------------o * | This package is licensed under the Phpguru license. A quick summary is | * | that for commercial use, there is a small one-time licensing fee to pay. For | * | registered charities and educational institutes there is a reduced license | * | fee available. You can read more at: | * | | * | http://www.phpguru.org/static/license.html | * o------------------------------------------------------------------------------o * */ /** * Converts a given number to a textual representation of it */ class TextualNumber { private static $units = array(NR_0, NR_1, NR_2, NR_3, NR_4, NR_5, NR_6, NR_7, NR_8, NR_9); private static $teens = array(NR_10, NR_11, NR_12, NR_13, NR_14, NR_15, NR_16, NR_17, NR_18, NR_19); private static $tens = array(2 => NR_20, NR_30, NR_40, NR_50, NR_60, NR_70, NR_80, NR_90); private static $suffix = array(NR_1000, NR_MILL, NR_BILL, NR_TILL, NR_QUAD); /** * Returns appropriate text for given number. Despite * appearances the number should (though isn't required) be * passed in as a string. This allows large numbers to be * converted. Integers are handled just fine though. * Negative numbers are handled fine. * * The billion/trillion etc suffixes are done using the American * style (eg 9 zeros for billion, 12 for trillion), which albeit * being mathmetically incorrect, is (I believe) the commonly * accepted norm. Since this code was written for the purpose * of validating human vs spider form submissions, this is the * more appropriate way to go. * * @param string $int The number to convert. Optional. * @return text Resulting text */ private static function ToString($int) { // Check for purely numeric chars if (!preg_match('#^[\d.]+$#', $int)) { throw new Exception('Invalid characters in input'); } // Handle decimals if (strpos($int, '.') !== false) { $decimal = substr($int, strpos($int, '.') + 1); $int = substr($int, 0, strpos($int, '.')); } // Lose insignificant zeros $int = ltrim($int, '0'); // Check for valid number if ($int == '') { $int = '0'; } // Lose the negative, don't use abs() so as to allow large numbers if ($negative = ($int < 0)) { $int = substr($int, 1); } // Number too big? if (strlen($int) > 18) { throw new Exception('Out of range'); } // Keep original number $orig = $int; /** * Main number deciphering bit thing */ switch (strlen($int)) { // Single digit number case '1': $text = self::$units[$int]; break; // Two digit number case '2': if ($int{0} == '1') { $text = self::$teens[$int{1}]; } else if ($int{1} == '0') { $text = self::$tens[$int{0}]; } else { $text = self::$tens[$int{0}] . ' ' . self::$units[$int{1}]; } break; // Three digit number case '3': if ($int % 100 == 0) { $text = self::$units[$int{0}] . ' simts'; } else { $text = self::$units[$int{0}] . ' simts ' . self::GetText(substr($int, 1)); } break; // Anything else default: $pieces = array(); $suffixIndex = 0; // Handle the last three digits $num = substr($int, -3); if ($num > 0) { $pieces[] = self::GetText($num); } $int = substr($int, 0, -3); // Now handle the thousands/millions etc while (strlen($int) > 3) { $num = substr($int, -3); if ($num > 0) { $pieces[] = self::GetText($num) . ' ' . self::$suffix[$suffixIndex]; } $int = substr($int, 0, -3); $suffixIndex++; } $pieces[] = self::GetText(substr($int, -3)) . ' ' . self::$suffix[$suffixIndex]; /** * Figure out whether we need to add "and" in there somewhere */ $pieces = array_reverse($pieces); if (count($pieces) > 1 AND strpos($pieces[count($pieces) - 1], ' and ') === false) { $pieces[] = $pieces[count($pieces) - 1]; $pieces[count($pieces) - 2] = 'and'; } // Create the text $text = implode(' ', $pieces); // Negative number? if ($negative) { $text = 'minus ' . $text; } break; } /** * Handle any decimal part */ if (!empty($decimal)) { $pieces = array(); $decimal = preg_replace('#[^0-9]#', '', $decimal); for ($i=0, $len=strlen($decimal); $i<$len; ++$i) { $pieces[] = self::$units[$decimal{$i}]; } $text .= ' point ' . implode(' ', $pieces); } return $text; } /** * Returns text for given number. Parameter should ideally * be a string (to handle large numbers) though integers are * OK. * * @param string $int Number to convert * @return string Resulting textual representation */ public function GetText($int) { return self::ToString($int); } /** * Returns text and number for a randomly generated number. * * @return array Array of number and textual representation */ public function Get() { $int = mt_rand(); return array($int, self::ToString($int)); } /** * Returns currency version of a given number. * * @param string $int Number to convert * @param string $major Word to use for left hand side of decimal point * @param string $minor Word to use for right hand side of decimal point * @return string Resulting string */ public function GetCurrency($int, $major = 'lats', $minor = 'santims') { if (strpos($int, '.') !== false) { $left = substr($int, 0, strpos($int, '.')); $right = substr($int, strpos($int, '.') + 1); // Mainīgais pirms punkta ? if (substr($left,1,strlen($left)) <= 1) { $major = 'lats'; } else { $major = 'lati'; } // Mainīgais pēc punkta ? if (substr($right,1,strlen($right)) <= 1) { $minor = 'santīms'; } elseif (substr($right,0,strlen($right)) == 90) { $minor = 'santīmi'; } else { $minor = 'santīmi'; } // $text = self::GetText($left) . " $major and " . self::GetText($right) . " $minor"; // Cena ar cipars Lats, cipars santīms $text = self::GetText($left) . " $major, " . $right . " $minor"; // Cena ar cipars Lats, 31 santims } else { $text = self::GetText($int) . " $major"; } return $text; } } ?>
  3. Sveika tauta! Man maza problēma ar cipariem un LV locījumiem pie skaitļu izvades ar vārdiem. piem_1. ja summa ir 11.21 man izvadās: vienpadsmit Lati, 21 santīms piem_2. ja summa ir 10.20 man izvadās: desmit Lats, 20 santīms Tā pati problēma ir ar gan latiem, gan santīmiem - 0 / 10 / 20 / 40 / utt. Latiem izvadās kā piem. četrdesmit Lats, 00 santīms šeit ir kods: public function GetCurrency($int, $major = 'lats', $minor = 'santims') { if (strpos($int, '.') !== false) { $left = substr($int, 0, strpos($int, '.')); $right = substr($int, strpos($int, '.') + 1); // Mainīgais pirms punkta $major ? if (substr($left,1,strlen($left)) <= 1) { $major = 'lats'; } else { $major = 'lati'; } // Mainīgais pēc punkta $minor ? if (substr($right,1,strlen($right)) <= 1) { $minor = 'santīms'; } else { $minor = 'santīmi'; } // $text = self::GetText($left) . " $major and " . self::GetText($right) . " $minor"; // Cena ar cipars Lats, cipars santīms $text = self::GetText($left) . " $major, " . $right . " $minor"; // Cena ar cipars Lats, 31 santims } else { $text = self::GetText($int) . " $major"; } return $text; } zinu ka kodam vajadzēti izskatīties apmērm šādam: // Mainīgais pirms punkta $major ? if (substr($left,1,strlen($left)) <= 1) { $major = 'lats'; } elseif (substr($left,2,strlen($left)) == 10) { $major = 'lati'; } else { $major = 'lati'; } bet man neizdodās to panākt, vai arī kods ignorē to skaitli Help...
  4. imop

    Gabaldarbs!

    Sveiki! Klientam mainījās domas par lapu, tapēc nākās pārstrādāt tehnisko specifikāciju. Līdz 12.aprīlim viss būs saskaņots, tad arī būs pieejams dokuments.
  5. imop

    Gabaldarbs!

    Nepieciešams izveidot weblapu / CMS: 1) PHP 2) MySQL 3) JavaScript / Jquery 4) Flash (pēc vienošanās) - minimāli Programēšanai paredzētā summa ap 350 LVL (neskaitot flash) p.s. Par pirmām iemaksām vienosimies!
  6. Man šeit doma panesās a kapēc nē ja nu var šādi kaut ko ar php kopā: Lai nav jāraksta lielais penteris pēc augšējā parauga, kas pie lielākām DB varētu būt smagnējs process... bet gan ar šāda veidojuma palīdzību paveikto to visu automātiski: <?php // Piesledzos mysql_connect("localhost","lietotajs","parole"); mysql_select_db("datubazes_nosaukums"); // Nu tad aiziet $res = mysql_query("SHOW TABLES"); while ($row = mysql_fetch_array($res) while ($col = mysql_fetch_array($res) ) { foreach ($row as $key => $table) foreach ($col as $key => $column) { mysql_query("ALTER TABLE " . $table . " MODIFY " . $column . " BINARY('255');"); echo $key . " => " . $table . " un " . $column . " <b>IZDEVAS</b> parveidot<br />"; mysql_query("ALTER TABLE " . $table . " MODIFY " . $column . " VARCHAR('255') CHARACTER SET utf8 COLLATE utf8_bin;"); echo $key . " => " . $table . " un " . $column . " <b>IZDEVAS</b> parveidot<br />"; mysql_query("UPDATE " . $table . " SET " . $column . " = REPLACE(" . $column . ", x'00', '');"); echo $key . " => " . $table . " un " . $column . " <b>IZDEVAS</b> parveidot<br /> <br />"; } } ?> Tikai problēma, kā lai pasaka php ka viņam jāčēko sākumā TABULA kurās ir tikai "VARCHAR('???')" kur ??? vietā var būt dažādi skaitļi piem.: 1, 32, 255 utt. un veic darbibu: mysql_query("ALTER TABLE " . $table . " MODIFY " . $column . " BINARY('???');"); echo $key . " => " . $table . " un " . $column . " <b>IZDEVAS</b> parveidot<br />"; Tad kad tas ir pārveidots, lai sāk čēkot tās TABULAS kurās ir tikai "BINARY('???')", kur ??? vitā var būt dažādi skaitļi piem.: 1, 32, 255 utt. un veic darbību: mysql_query("ALTER TABLE " . $table . " MODIFY " . $column . " VARCHAR('255') CHARACTER SET utf8 COLLATE utf8_bin;"); echo $key . " => " . $table . " un " . $column . " <b>IZDEVAS</b> parveidot<br />"; nu un trešā darbība ir easy, bet jautājums vai tas ir iespējams izvilkt no DB to ko es vēlos un veikt konkrētās darbības, ja ir tad varbūt varat palīdzēt?
  7. Sākumā nevarēju saprast kapēc man aiz visiem uzrakstiem parādās \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 bet beigās palasīju laacz rakstu mazliet uzmanīgāk un galu galā man izdevās! Tad darīju tā: Sākumā ALTER TABLE `kategorijas` MODIFY `kategorijas_nosaukumi` BINARY(255); un tad tikai uz utf8 ar šo: ALTER TABLE `kategorijas` MODIFY `kategorijas_nosaukumi` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin; un tad noņemam nulles un visu slashus "\" nost UPDATE `kategorijas` SET `kategorijas_nosaukumi` = REPLACE(`kategorijas_nosaukumi`, x'00', ''); Jāatdzīst penteris snāk liels pa visu DB, bet galarezultāts ir tas ko es vēlējos viss ir smuki un pareizi! Paldies!
  8. thx visiem, tiešām būs ko apsmadzeņot, tā kā viss tiek apgūts tad tiešām paldies! par rezutātie painformēšu kas un kā man izdevās! p.s. īsti vīri backup tomēr taisa un paglabā kādu laiku! :D
  9. Pašā DB jāsaimana charset/collation visām tabulām, kā default man tagad stāv utf8_bin pie ierakstu veidošanas, bet gan pašām tabulām ir latin1_swedish_ci Viens risinājums ir paņemt eksportēt DB iekopēt kādā editorā un samainīt vienkārši latin1 ierakstus uz utf8 un latin1_bin uz utf8_bin, bet nezinu vai tas īsti ir pareizi, jo tad viņš man DB rāda visām tabulām utf8_general_ci, ja tas neimaina lietas būtību, tad var arī palikt utf8_general_ci ir ok - utf8_general_ci vai tomēr utf8_bin
  10. Sveiki! Man jautājums par to kā var noaminīt jau esošai DB "Collation" no latin1_swedish_ci uz utf8_bin, Bet VISĀM tabulām, mēģināju palaist šādu (ALTER DATABASE `manabaze` CHARACTER SET utf8 COLLATE utf8_bin;) skriptu iekš phpmyadmin, bet nesanāca :( varbūt kāds zin kā to var izdarīt savādāk man ar rokām mainīt visam būtu pārāk ilgi!
  11. Paldies par piedalīšanos konkursā, ir izvēlēts cilvēks kur šo darbu paveiks! Ja būs vēl kādi darbi veicami publicēšu tos forumā! AC, imop
  12. Principā viņš paliks viens pats! klients atzīmē checkbox, tad tiesnešu skaitu, summu utt un viss izdod aprēķinu!
  13. Tā tad lieta sekojoša: Pašam nav tādu prasmju, tapēc ir vajadzīgs kāds kurš to izveidos! ir vajadzīgs kalkulātors loti līdzīgs šim: kalkulators Jautājums paliek atklāts: Kurš ko tādu varētu izveidot tuvāko dienu laikā? Samaksa: Piedāvājums ar zemāko cenu! (puse pirms izveides un puse pēc) gaidu piedāvājumus!
  14. Te jau viņam ir norādīts ka sniegs krīt iekš body un iekš tādos parametros var i, doc_width = 800, doc_height = 600;
  15. input, textarea { font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#404040; } un .outtaHere { position:absolute; left:-3000px; } Ja ir vajadzīgs viss css varu iekopēt.
  16. Ir maza problēma varbūt kāds spēs palīdzēt to atrisināt: Paņēmu jau gatavu javascript un pielāgoju savām vajadzībām līdz nonācu ka man nav funkcijas (checkAll / uncheckAll) centos pats viņu pielikt tikai saprotu ka ar manām zināšanām būs par īsu! Tapēc vēršo pēc palīdzības! Javascript: //Global Variables var niceforms = document.getElementsByTagName('form'); var inputs = new Array(); var labels = new Array(); var radios = new Array(); var radioLabels = new Array(); var checkboxes = new Array(); var checkboxLabels = new Array(); var texts = new Array(); var textareas = new Array(); var selects = new Array(); var selectText = "please select"; var agt = navigator.userAgent.toLowerCase(); this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); var hovers = new Array(); var buttons = new Array(); var isMac = new RegExp('(^|)'+'Apple'+'(|$)'); //Theme Variables - edit these to match your theme var selectRightSideWidth = 21; var selectLeftSideWidth = 8; var selectAreaHeight = 21; var selectAreaOptionsOverlap = 2; var imagesPath = "../img/"; //Initialization function - if you have any other 'onload' functions, add them here function init() { if(!document.getElementById) {return false;} preloadImages(); getElements(); separateElements(); replaceRadios(); replaceCheckboxes(); replaceSelects(); if(!isMac.test(navigator.vendor)) { replaceTexts(); replaceTextareas(); buttonHovers(); } } //preloading required images function preloadImages() { preloads = new Object(); preloads[0] = new Image(); preloads[0].src = imagesPath + "button_left_xon.gif"; preloads[1] = new Image(); preloads[1].src = imagesPath + "button_right_xon.gif"; preloads[2] = new Image(); preloads[2].src = imagesPath + "input_left_xon.gif"; preloads[3] = new Image(); preloads[3].src = imagesPath + "input_right_xon.gif"; preloads[4] = new Image(); preloads[4].src = imagesPath + "txtarea_bl_xon.gif"; preloads[5] = new Image(); preloads[5].src = imagesPath + "txtarea_br_xon.gif"; preloads[6] = new Image(); preloads[6].src = imagesPath + "txtarea_cntr_xon.gif"; preloads[7] = new Image(); preloads[7].src = imagesPath + "txtarea_l_xon.gif"; preloads[8] = new Image(); preloads[8].src = imagesPath + "txtarea_tl_xon.gif"; preloads[9] = new Image(); preloads[9].src = imagesPath + "txtarea_tr_xon.gif"; } //getting all the required elements function getElements() { var re = new RegExp('(^| )'+'niceform'+'( |$)'); for (var nf = 0; nf < document.getElementsByTagName('form').length; nf++) { if(re.test(niceforms[nf].className)) { for(var nfi = 0; nfi < document.forms[nf].getElementsByTagName('input').length; nfi++) {inputs.push(document.forms[nf].getElementsByTagName('input')[nfi]);} for(var nfl = 0; nfl < document.forms[nf].getElementsByTagName('label').length; nfl++) {labels.push(document.forms[nf].getElementsByTagName('label')[nfl]);} for(var nft = 0; nft < document.forms[nf].getElementsByTagName('textarea').length; nft++) {textareas.push(document.forms[nf].getElementsByTagName('textarea')[nft]);} for(var nfs = 0; nfs < document.forms[nf].getElementsByTagName('select').length; nfs++) {selects.push(document.forms[nf].getElementsByTagName('select')[nfs]);} } } } //separating all the elements in their respective arrays function separateElements() { var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0; for (var q = 0; q < inputs.length; q++) { if(inputs[q].type == 'radio') { radios[r] = inputs[q]; ++r; for(var w = 0; w < labels.length; w++) {if(labels[w].htmlFor == inputs[q].id) {if(inputs[q].checked) {labels[w].className = "chosen";} radioLabels[rl] = labels[w]; ++rl;}} } if(inputs[q].type == 'checkbox') { checkboxes[c] = inputs[q]; ++c; for(var w = 0; w < labels.length; w++) {if(labels[w].htmlFor == inputs[q].id) {if(inputs[q].checked) {labels[w].className = "chosen";} checkboxLabels[cl] = labels[w]; ++cl;}} } if((inputs[q].type == "text") || (inputs[q].type == "password")) {texts[t] = inputs[q]; ++t;} if((inputs[q].type == "submit") || (inputs[q].type == "button")) {buttons[b] = inputs[q]; ++b;} } } function replaceRadios() { for (var q = 0; q < radios.length; q++) { //move radios out of the way radios[q].className = "outtaHere"; //create div var radioArea = document.createElement('div'); if(radios[q].checked) {radioArea.className = "radioAreaChecked";} else {radioArea.className = "radioArea";} radioArea.style.left = findPosX(radios[q]) + 'px'; radioArea.style.top = findPosY(radios[q]) + 'px'; radioArea.style.margin = "1px"; radioArea.id = "myRadio" + q; //insert div radios[q].parentNode.insertBefore(radioArea, radios[q]); //assign actions radioArea.onclick = new Function('rechangeRadios('+q+')'); radioLabels[q].onclick = new Function('rechangeRadios('+q+')'); if(!this.ie) {radios[q].onfocus = new Function('focusRadios('+q+')'); radios[q].onblur = new Function('blurRadios('+q+')');} radios[q].onclick = radioEvent; } return true; } function focusRadios(who) { var what = document.getElementById('myRadio'+who); what.style.border = "1px dotted #333"; what.style.margin = "0"; return false; } function blurRadios(who) { var what = document.getElementById('myRadio'+who); what.style.border = "0"; what.style.margin = "1px"; return false; } function checkRadios(who) { var what = document.getElementById('myRadio'+who); others = document.getElementsByTagName('div'); for(var q = 0; q < others.length; q++) {if((others[q].className == "radioAreaChecked")&&(others[q].nextSibling.name == radios[who].name)) {others[q].className = "radioArea";}} what.className = "radioAreaChecked"; } function changeRadios(who) { if(radios[who].checked) { for(var q = 0; q < radios.length; q++) {if(radios[q].name == radios[who].name) {radios[q].checked = false; radioLabels[q].className = "";}} radios[who].checked = true; radioLabels[who].className = "chosen"; checkRadios(who); } } function rechangeRadios(who) { if(!radios[who].checked) { for(var q = 0; q < radios.length; q++) {if(radios[q].name == radios[who].name) {radios[q].checked = false; radioLabels[q].className = "";}} radios[who].checked = true; radioLabels[who].className = "chosen"; checkRadios(who); } } function radioEvent(e) { if (!e) var e = window.event; if(e.type == "click") {for (var q = 0; q < radios.length; q++) {if(this == radios[q]) {changeRadios(q); break;}}} } function replaceCheckboxes() { for (var q = 0; q < checkboxes.length; q++) { //move checkboxes out of the way checkboxes[q].className = "outtaHere"; //create div var checkboxArea = document.createElement('div'); if(checkboxes[q].checked) {checkboxArea.className = "checkboxAreaChecked";} else {checkboxArea.className = "checkboxArea";} checkboxArea.style.left = findPosX(checkboxes[q]) + 'px'; checkboxArea.style.top = findPosY(checkboxes[q]) + 'px'; checkboxArea.style.margin = "1px"; checkboxArea.id = "myCheckbox" + q; //insert div checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]); //asign actions checkboxArea.onclick = new Function('rechangeCheckboxes('+q+')'); if(!isMac.test(navigator.vendor)) {checkboxLabels[q].onclick = new Function('changeCheckboxes('+q+')');} else {checkboxLabels[q].onclick = new Function('rechangeCheckboxes('+q+')');} if(!this.ie) {checkboxes[q].onfocus = new Function('focusCheckboxes('+q+')'); checkboxes[q].onblur = new Function('blurCheckboxes('+q+')');} checkboxes[q].onkeydown = checkEvent; } return true; } function focusCheckboxes(who) { var what = document.getElementById('myCheckbox'+who); what.style.border = "1px dotted #333"; what.style.margin = "0"; return false; } function blurCheckboxes(who) { var what = document.getElementById('myCheckbox'+who); what.style.border = "0"; what.style.margin = "1px"; return false; } function checkCheckboxes(who, action) { var what = document.getElementById('myCheckbox'+who); if(action == true) {what.className = "checkboxAreaChecked";} if(action == false) {what.className = "checkboxArea";} } function changeCheckboxes(who) { if(checkboxLabels[who].className == "chosen") { checkboxes[who].checked = true; checkboxLabels[who].className = ""; checkCheckboxes(who, false); } else if(checkboxLabels[who].className == "") { checkboxes[who].checked = false; checkboxLabels[who].className = "chosen"; checkCheckboxes(who, true); } } function rechangeCheckboxes(who) { var tester = false; if(checkboxLabels[who].className == "chosen") { tester = false; checkboxLabels[who].className = ""; } else if(checkboxLabels[who].className == "") { tester = true; checkboxLabels[who].className = "chosen"; } checkboxes[who].checked = tester; checkCheckboxes(who, tester); } /* sakums select all */ function checkAll(who){ var f = document.getElementById(who); var inputs = f.getElementsByTagName("input"); for(var t = 0;t < inputs.length;t++){ if(inputs[t].type == "checkbox") inputs[t].checked = true; } for (var q = 0; q < checkboxes.length; q++) { //move checkboxes out of the way checkboxes[q].className = "outtaHere"; //create div var checkboxArea = document.createElement('div'); if(checkboxes[q].checked) {checkboxArea.className = "checkboxAreaChecked";} else {checkboxArea.className = "checkboxArea";} checkboxArea.style.left = findPosX(checkboxes[q]) + 'px'; checkboxArea.style.top = findPosY(checkboxes[q]) + 'px'; checkboxArea.style.margin = "1px"; checkboxArea.id = "myCheckbox" + q; //insert div checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]); //asign actions checkboxArea.onclick = new Function('rechangeCheckboxes('+q+')'); if(!isMac.test(navigator.vendor)) {checkboxLabels[q].onclick = new Function('changeCheckboxes('+q+')');} else {checkboxLabels[q].onclick = new Function('rechangeCheckboxes('+q+')');} if(!this.ie) {checkboxes[q].onfocus = new Function('focusCheckboxes('+q+')'); checkboxes[q].onblur = new Function('blurCheckboxes('+q+')');} checkboxes[q].onkeydown = checkEvent; } } function uncheckAll(id){ var f = document.getElementById(id); var inputs = f.getElementsByTagName("input"); for(var t = 0;t < inputs.length;t++){ if(inputs[t].type == "checkbox") inputs[t].checked = false; } for (var q = 0; q < checkboxes.length; q++) { //move checkboxes out of the way checkboxes[q].className = "outtaHere"; //create div var checkboxArea = document.createElement('div'); if(checkboxes[q].checked) {checkboxArea.className = "checkboxAreaChecked";} else {checkboxArea.className = "checkboxArea";} checkboxArea.style.left = findPosX(checkboxes[q]) + 'px'; checkboxArea.style.top = findPosY(checkboxes[q]) + 'px'; checkboxArea.style.margin = "1px"; checkboxArea.id = "myCheckbox" + q; //insert div checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]); //asign actions checkboxArea.onclick = new Function('rechangeCheckboxes('+q+')'); if(!isMac.test(navigator.vendor)) {checkboxLabels[q].onclick = new Function('changeCheckboxes('+q+')');} else {checkboxLabels[q].onclick = new Function('rechangeCheckboxes('+q+')');} if(!this.ie) {checkboxes[q].onfocus = new Function('focusCheckboxes('+q+')'); checkboxes[q].onblur = new Function('blurCheckboxes('+q+')');} checkboxes[q].onkeydown = checkEvent; } } /* beigas check all */ function checkEvent(e) { if (!e) var e = window.event; if(e.keyCode == 32) {for (var q = 0; q < checkboxes.length; q++) {if(this == checkboxes[q]) {changeCheckboxes(q);}}} //check if space is pressed } function replaceSelects() { for(var q = 0; q < selects.length; q++) { //create and build div structure var selectArea = document.createElement('div'); var left = document.createElement('div'); var right = document.createElement('div'); var center = document.createElement('div'); var button = document.createElement('a'); var text = document.createTextNode(selectText); center.id = "mySelectText"+q; var selectWidth = parseInt(selects[q].className.replace(/width_/g, "")); center.style.width = selectWidth - 10 + 'px'; selectArea.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth + 'px'; button.style.width = selectWidth + selectRightSideWidth + selectLeftSideWidth + 'px'; button.style.marginLeft = - selectWidth - selectLeftSideWidth + 'px'; button.href = "javascript:showOptions("+q+")"; button.onkeydown = selectEvent; button.className = "selectButton"; //class used to check for mouseover selectArea.className = "selectArea"; selectArea.id = "sarea"+q; left.className = "left"; right.className = "right"; center.className = "center"; right.appendChild(button); center.appendChild(text); selectArea.appendChild(left); selectArea.appendChild(right); selectArea.appendChild(center); //hide the select field selects[q].style.display='none'; //insert select div selects[q].parentNode.insertBefore(selectArea, selects[q]); //build & place options div var optionsDiv = document.createElement('div'); optionsDiv.style.width = selectWidth + 1 + 'px'; optionsDiv.className = "optionsDivInvisible"; optionsDiv.id = "optionsDiv"+q; optionsDiv.style.left = findPosX(selectArea) + 'px'; optionsDiv.style.top = findPosY(selectArea) + selectAreaHeight - selectAreaOptionsOverlap + 'px'; //get select's options and add to options div for(var w = 0; w < selects[q].options.length; w++) { var optionHolder = document.createElement('p'); var optionLink = document.createElement('a'); var optionTxt = document.createTextNode(selects[q].options[w].text); optionLink.href = "javascript:showOptions("+q+"); selectMe('"+selects[q].id+"',"+w+","+q+");"; optionLink.appendChild(optionTxt); optionHolder.appendChild(optionLink); optionsDiv.appendChild(optionHolder); //check for pre-selected items if(selects[q].options[w].selected) {selectMe(selects[q].id,w,q);} } //insert options div document.getElementsByTagName("body")[0].appendChild(optionsDiv); } } function showOptions(g) { elem = document.getElementById("optionsDiv"+g); if(elem.className=="optionsDivInvisible") {elem.className = "optionsDivVisible";} else if(elem.className=="optionsDivVisible") {elem.className = "optionsDivInvisible";} elem.onmouseout = hideOptions; } function hideOptions(e) { //hiding the options on mouseout if (!e) var e = window.event; var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement; if(((reltg.nodeName != 'A') && (reltg.nodeName != 'DIV')) || ((reltg.nodeName == 'A') && (reltg.className=="selectButton") && (reltg.nodeName != 'DIV'))) {this.className = "optionsDivInvisible";}; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); } function selectMe(selectFieldId,linkNo,selectNo) { //feed selected option to the actual select field selectField = document.getElementById(selectFieldId); for(var k = 0; k < selectField.options.length; k++) { if(k==linkNo) {selectField.options[k].selected = "selected";} else {selectField.options[k].selected = "";} } //show selected option textVar = document.getElementById("mySelectText"+selectNo); var newText = document.createTextNode(selectField.options[linkNo].text); textVar.replaceChild(newText, textVar.childNodes[0]); } function selectEvent(e) { if (!e) var e = window.event; var thecode = e.keyCode; switch(thecode){ case 40: //down var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, ""); var linkNo = 0; for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}} ++linkNo; if(linkNo >= selects[fieldId].options.length) {linkNo = 0;} selectMe(selects[fieldId].id, linkNo, fieldId); break; case 38: //up var fieldId = this.parentNode.parentNode.id.replace(/sarea/g, ""); var linkNo = 0; for(var q = 0; q < selects[fieldId].options.length; q++) {if(selects[fieldId].options[q].selected) {linkNo = q;}} --linkNo; if(linkNo < 0) {linkNo = selects[fieldId].options.length - 1;} selectMe(selects[fieldId].id, linkNo, fieldId); break; default: break; } } function replaceTexts() { for(var q = 0; q < texts.length; q++) { texts[q].style.width = texts[q].size * 10 + 'px'; txtLeft = document.createElement('img'); txtLeft.src = imagesPath + "input_left.gif"; txtLeft.className = "inputCorner"; txtRight = document.createElement('img'); txtRight.src = imagesPath + "input_right.gif"; txtRight.className = "inputCorner"; texts[q].parentNode.insertBefore(txtLeft, texts[q]); texts[q].parentNode.insertBefore(txtRight, texts[q].nextSibling); texts[q].className = "textinput"; //create hovers texts[q].onfocus = function() { this.className = "textinputHovered"; this.previousSibling.src = imagesPath + "input_left_xon.gif"; this.nextSibling.src = imagesPath + "input_right_xon.gif"; } texts[q].onblur = function() { this.className = "textinput"; this.previousSibling.src = imagesPath + "input_left.gif"; this.nextSibling.src = imagesPath + "input_right.gif"; } } } function replaceTextareas() { for(var q = 0; q < textareas.length; q++) { var where = textareas[q].parentNode; var where2 = textareas[q].previousSibling; textareas[q].style.width = textareas[q].cols * 10 + 'px'; textareas[q].style.height = textareas[q].rows * 10 + 'px'; //create divs var container = document.createElement('div'); container.className = "txtarea"; container.style.width = textareas[q].cols * 10 + 20 + 'px'; container.style.height = textareas[q].rows * 10 + 20 + 'px'; var topRight = document.createElement('div'); topRight.className = "tr"; var topLeft = document.createElement('img'); topLeft.className = "txt_corner"; topLeft.src = imagesPath + "txtarea_tl.gif"; var centerRight = document.createElement('div'); centerRight.className = "cntr"; var centerLeft = document.createElement('div'); centerLeft.className = "cntr_l"; if(!this.ie) {centerLeft.style.height = textareas[q].rows * 10 + 10 + 'px';} else {centerLeft.style.height = textareas[q].rows * 10 + 12 + 'px';} var bottomRight = document.createElement('div'); bottomRight.className = "br"; var bottomLeft = document.createElement('img'); bottomLeft.className = "txt_corner"; bottomLeft.src = imagesPath + "txtarea_bl.gif"; //assemble divs container.appendChild(topRight); topRight.appendChild(topLeft); container.appendChild(centerRight); centerRight.appendChild(centerLeft); centerRight.appendChild(textareas[q]); container.appendChild(bottomRight); bottomRight.appendChild(bottomLeft); //insert structure where.insertBefore(container, where2); //create hovers textareas[q].onfocus = function() { this.previousSibling.className = "cntr_l_xon"; this.parentNode.className = "cntr_xon"; this.parentNode.previousSibling.className = "tr_xon"; this.parentNode.previousSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_tl_xon.gif"; this.parentNode.nextSibling.className = "br_xon"; this.parentNode.nextSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_bl_xon.gif"; } textareas[q].onblur = function() { this.previousSibling.className = "cntr_l"; this.parentNode.className = "cntr"; this.parentNode.previousSibling.className = "tr"; this.parentNode.previousSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_tl.gif"; this.parentNode.nextSibling.className = "br"; this.parentNode.nextSibling.getElementsByTagName("img")[0].src = imagesPath + "txtarea_bl.gif"; } } } function buttonHovers() { for (var i = 0; i < buttons.length; i++) { buttons[i].className = "buttonSubmit"; var buttonLeft = document.createElement('img'); buttonLeft.src = imagesPath + "button_left.gif"; buttonLeft.className = "buttonImg"; buttons[i].parentNode.insertBefore(buttonLeft, buttons[i]); var buttonRight = document.createElement('img'); buttonRight.src = imagesPath + "button_right.gif"; buttonRight.className = "buttonImg"; if(buttons[i].nextSibling) {buttons[i].parentNode.insertBefore(buttonRight, buttons[i].nextSibling);} else {buttons[i].parentNode.appendChild(buttonRight);} buttons[i].onmouseover = function() { this.className += "Hovered"; this.previousSibling.src = imagesPath + "button_left_xon.gif"; this.nextSibling.src = imagesPath + "button_right_xon.gif"; } buttons[i].onmouseout = function() { this.className = this.className.replace(/Hovered/g, ""); this.previousSibling.src = imagesPath + "button_left.gif"; this.nextSibling.src = imagesPath + "button_right.gif"; } } } //Useful functions function findPosY(obj) { var posTop = 0; while (obj.offsetParent) {posTop += obj.offsetTop; obj = obj.offsetParent;} return posTop; } function findPosX(obj) { var posLeft = 0; while (obj.offsetParent) {posLeft += obj.offsetLeft; obj = obj.offsetParent;} return posLeft; } window.onload = init; html: <form action="#" method="post" class="niceform" target="_blank" id="niceform"> <div class="in_content_rows"> <div class="in_sent_column_check"><input type="checkbox" name="checkSet1" id="check1" value="" /><label for="check1"></label></div> <div class="in_sent_column_name">users</div> </div> <div class="in_content_rows"> <div class="in_sent_column_check"><input type="checkbox" name="checkSet1" id="check1" value="" /><label for="check1"></label></div> <div class="in_sent_column_name">users</div> </div> <div class="in_content_rows"> <div class="in_sent_column_check"><input type="checkbox" name="checkSet1" id="check1" value="" /><label for="check1"></label></div> <div class="in_sent_column_name">users</div> </div> <div class="in_content_rows"> <div class="in_sent_column_check"><input type="checkbox" name="checkSet1" id="check1" value="" /><label for="check1"></label></div> <div class="in_sent_column_name">users</div> </div> <div class="in_btn_bottom"> <ul> <li><a href="#" onClick="javascript:checkAll('niceform');">Check All</a></li> <li><a href="#" onclick="javascript:uncheckAll('niceform');">Uncheck All</a></li> </ul> </div> </form> Lieta tāda, ka man neizdodās noslēpt iepriekšējo checkbox lauciņu ar attēlu kurā nav ķesis, kad nospiežot uz pogas "Check All" parādās ieķesētais attēls zem iepriekšējā! pielikumā attēls, lai labāk būtu saprotams ko es cenšos panākt!
  17. Principā kas ir SQL un PHP man ir skaidrs, bet galvenias gribās iemācīties programēšanas valodu kā datus iegūt no DB kā parādīt to gala lietotājam...
  18. Paldies par linkiem! Atliek tagad sāk lasīt!
  19. Paldies par kodiem, bet iedodiet kur palasiit kā jūs to kodu uzrakstījāt?
  20. Viss izskatās labi, bet es to nekad esapratīšu kamēr nepalasīšu no kurienes šis viss ir radies!
  21. Cīnos ar tādu ierakstu no DB: CREATE TABLE `kategorijas_language` ( `kategorijas_language_id` int(11) NOT NULL auto_increment, `language` varchar(5) collate utf8_general_ci NOT NULL default '', `kategorijas_id` int(11) NOT NULL default '0', `title` varchar(255) collate utf8_general_ci default NULL, `alt` varchar(255) collate utf8_general_ci default NULL, PRIMARY KEY (`kategorijas_language_id`,`language`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; # # Izveidijam ierakstus tabula 'kategorijas_language' # INSERT INTO `kategorijas_language` VALUES('1', 'lv', '1', 'Izvēlne 1', 'apzīmējums 1'); INSERT INTO `kategorijas_language` VALUES('2', 'ru', '1', 'Категория 1', 'инфо текст 1'); INSERT INTO `kategorijas_language` VALUES('3', 'en', '1', 'Menu 1', 'description 1'); INSERT INTO `kategorijas_language` VALUES('4', 'lv', '2', 'Izvēlne 2', 'apzīmējums 2'); INSERT INTO `kategorijas_language` VALUES('5', 'ru', '2', 'Категория 2', 'инфо текст 2'); INSERT INTO `kategorijas_language` VALUES('6', 'en', '2', 'Menu 2', 'description 2'); INSERT INTO `kategorijas_language` VALUES('7', 'lv', '3', 'Izvēlne 3', 'apzīmējums 3'); INSERT INTO `kategorijas_language` VALUES('8', 'ru', '3', 'Категория 3', 'инфо текст 3'); INSERT INTO `kategorijas_language` VALUES('9', 'en', '3', 'Menu 3', 'description 3'); Nekādīgi nesanāk dabūt ārā izvēlni (menu) pa valodām piem: Izvēlne 1 Izvēlne 2 Izvēlne 3 Kā lai pasaka MySQL ar php lai izvada tikai "kategorijas_id" ID 1,2,3 un līdz ar to izvadītos tikai "title" no konkrētās valodas? Vai kāds var pateikt priekšā kur meklēt kādu aprakstus (example), kā šo var dabūt gatavu? Vai labāk informāciju par datu iegūšanu no MySQL! Pateicos jau iepriekš!
  22. Atrisinaajums tika atrast: pie DB atveeršanas lai nosalas pareizo kodeejumu: mysql_query( "SET NAMES UTF8", $conn);
  23. Problēma: Izveidoju db tabulu ar ierakstiem smuki viss rādās burti pareizi # # Izveidijam tabulu 'kategorijas_languguage' # CREATE TABLE `kategorijas_language` ( `kategorijas_language_id` int(11) NOT NULL auto_increment, `language` varchar(5) collate utf8_bin NOT NULL default '', `kategorijas_id` int(11) NOT NULL default '0', `title` varchar(255) collate utf8_bin default NULL, `alt` varchar(255) collate utf8_bin default NULL, PRIMARY KEY (`kategorijas_language_id`,`language`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; # # Izveidijam ierakstus tabula 'kategorijas_language' # INSERT INTO `kategorijas_language` VALUES('1', 'lv', '1', 'Izvēlne 1', 'apzīmējums 1'); INSERT INTO `kategorijas_language` VALUES('2', 'ru', '1', 'Категория 1', 'инфо текст 1'); INSERT INTO `kategorijas_language` VALUES('3', 'en', '1', 'Menu 1', 'description 1'); INSERT INTO `kategorijas_language` VALUES('4', 'lv', '2', 'Izvēlne 2', 'apzīmējums 2'); INSERT INTO `kategorijas_language` VALUES('5', 'ru', '2', 'Категория 2', 'инфо текст 2'); INSERT INTO `kategorijas_language` VALUES('6', 'en', '2', 'Menu 2', 'description 2'); INSERT INTO `kategorijas_language` VALUES('7', 'lv', '3', 'Izvēlne 3', 'apzīmējums 3'); INSERT INTO `kategorijas_language` VALUES('8', 'ru', '3', 'Категория 3', 'инфо текст 3'); INSERT INTO `kategorijas_language` VALUES('9', 'en', '3', 'Menu 3', 'description 3'); bet izvadot datus no db krievu burtu vietā rādās jautājumu zīmes un tas pats ar LV garumzīmēm un mīkstinājuma zīmēm ko es nepareizi daru? varbūt tas ir šis: utf8_bin itkaa mysq saka kas tas ir derīgs metalanguage palskatoties browserā: View -> Chart set encoding -> Unicode (UTF-8) Ierakstot tekstu vienkāši lapā rāda visu pareizi, tad izvades laikā no DB rodās tie ķeburi, kapēc?
  24. njaa kaa es taa nepamaniiju... Liels paldies!
×
×
  • Create New...