Jump to content
php.lv forumi

imop

Reģistrētie lietotāji
  • Posts

    30
  • Joined

  • Last visited

Posts posted by imop

  1. Nezinu, kur dabīji funkciju, bet katrai valodai sava specifika, nederēs tev tāda, kas paredzēta angļu valodai...

     

    Varbūt paprovē pats palauzīt galvu, un izštukot? :)

     

    (vispār, biju ievietojis topikā "Noderīgas funkcijas" funkciju, kas konvertē uz LV summu vārdiem (lai gan viņa nestrādā ar simtiem, ko nāksies pašam piemeistarot klāt)

     

    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. 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. 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. anyway, es domāju pēc visa šitā imopam būs viela pārdomām ^^

     

    EDIT: heh, vēl nebija neviens citāts no klasikas. tāpēc check this out too ;)

    http://laacz.lv/2006/12/28/mysql-un-utf8/

     

    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. man gan sanāca (uz localhost). nezinu vai uz hostiem tā var darīt. tur laikam jāizmanto hostinga paneļa funkcionalitāte, lai mainītu datu bāzes defaulto charset/collation

     

    btw, tev gadījumā drīzāk nevajadzēja datu kodējumu mainīt?

     

     

    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. Ir zināma aprēķinu specifikācija, vai tas ir jāizved no dotā kalkulatora?

    Tas ir arī kaut kur jāintegrē, vai vienkārši pietiek ar vienu skriptu, kas strādā pats par sevi?

     

    Tas vispār ir vajadzīgs javascriptā (pēc topika kategorijas spriežot) vai php?

     

    (Offtopic: Citēšu xmas12 no nākotnes: "Izlasi PM!" :D)

     

     

    Principā viņš paliks viens pats!

     

    klients atzīmē checkbox, tad tiesnešu skaitu, summu utt un viss izdod aprēķinu!

  12. 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!

  13. 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!

    post-3434-125840236446_thumb.jpg

  14. Pamataa taa ir kaa atseviskja Valoda SQL [ Structured Query Language ] ( 'stukturetaa pieprasijumu valoda') , ar dazaadam (parsvaraa nelielam) modifikacijam to izmanto visi uz SQL bazetie serveri ... Sakot ar MySQl beidzot ar ORACLE ...

    var palasiities kautvei sheit

     

     

    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...

  15. 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š!

  16. 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?

×
×
  • Create New...