Translate

ラベル お仕事メモ の投稿を表示しています。 すべての投稿を表示
ラベル お仕事メモ の投稿を表示しています。 すべての投稿を表示

2016年6月20日月曜日

【jquery】【javascript】jqueryで割り当てられたイベントハンドラを取得する



chromeならデベロッパーツールを開いて、コンソールに
$._data($("#id").get(0), "events");
と入力する。


2016年4月23日土曜日

【javascript】【jquery】スライダーの値を特定の箇所で吸着したい

例えば2-1024までの値のスライダーで、選べる値は2のn乗のみとしたい。
つまり、選べる値は2,4,8,16,32,64,128,256,512,1024とする。
<div class="ui-field-contain" id = "sliderdiv">
   <label for="slider">値</label>
   <input id="slider"  type="range" min="2" max="1024" step="1" value=2/>
</div>
<script>
    var keys = [2,4,8,16,32,64,128,256,512,1024];
    var keys_length =keys.length;
$(function(){
   $("#sliderdiv").on("change", "#slider", function() {
      var tmpvalue = $("#slider").val();
      for(var n=0;n<keys_length;n++)
      {
         if(tmpvalue<=keys[n])
         {
            break;
         }
      }
      if((keys[n]+keys[n+1])/2<tmpvalue)
      {
         $("#slider").val(keys[n+1]);
      }
      else {
         $("#slider").val(keys[n]);
      }
      if($("#slider").val()!=tmpvalue)//これ書いておかないと無限に処理を繰り返してしまう
      {
         $("#slider").slider('refresh');
      }
   })
})
</script>

2016年4月21日木曜日

【javascript】【jquery】スライダーの値によって、buttonを無効(disable)にする

よし、やる気ボタンを押すと仕事をやる気を出すぞ。
でも、暑かったり寒かったりしたらやる気ボタンが表示されないぞ。しょうがない。
という仕組み。
sliderって単純に$("#slider").on("change",function(){...})
じゃ処理は起動しないのね

<div class="ui-field-contain" id = "sliderdiv">       <label for="slider">気温</label>
    <input id="slider"  type="range" min="0" max="100" step="1" value=0 />
</div>
<button id ="yaruki">
やる気ボタン
</button>

<script>
$(function(){
    $("#sliderdiv").on("change", "#slider", function() {
    //または、$("input#slider").live("change", function() {
        var slider_value = $("#slider").val();
        if(15<=slider_value&&slider_value<=25)
        {
            $('#yaruki').prop('disabled', false);//非表示をオフにする。つまり、表示。
        }else{
            $('#yaruki').prop('disabled', true);
        }
    })
})
</script>

2016年4月4日月曜日

動的に作成したhtml部分にjquery/jquery mobileのスタイルが適用されない

#動的部分にinnerhtmlを代入するとして
$("#動的部分").html(innnerhtml)
の後ろに.trigger('create');を追加して
$("#動的部分").html(innnerhtml).trigger('create');
とする。

2016年2月19日金曜日

【php】declare&&ticksと分かり合えるのには時間がかかる気がする

declareについて調べている途中。

<?php
function ticks_echo() {
   static $count_of_ticks = 1;
   echo 'ticks >> '.$count_of_ticks."<br />";
   $count_of_ticks++;
}
register_tick_function( 'ticks_echo' );
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}

/*
僕の予想:
何かしらの処理:1回目
ticks >> 1
何かしらの処理:2回目
ticks >> 2
何かしらの処理:3回目
ticks >> 3


実際の結果:
何かしらの処理:1回目
ticks >> 1
ticks >> 2
何かしらの処理:2回目
ticks >> 3
ticks >> 4
何かしらの処理:3回目
ticks >> 5
ticks >> 6
ticks >> 7
ticks >> 8

*/
えっ、こいつら、ボディランゲージ通じない感じ。
どうやら、declareは{}ブロックの終わりでも一度評価されるよう。

つまり、
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}
の挙動は

何かしらの処理:1回目
ticks >> 1//forの最初のecho
ticks >> 2//forの最初の{}閉じ
何かしらの処理:2回目
ticks >> 3//forの2回目のecho
ticks >> 4//forの2回目の{}閉じ
何かしらの処理:3回目
ticks >> 5//forの3回目のecho
ticks >> 6//forの3回目の{}閉じ
ticks >> 7//forの4回目の{}閉じ(forの条件式が$n===4でfalseなので、中の文は実行されず)
ticks >> 8//declare最後の{}閉じ

となっている(のでしょう)。
その辺を考えて使わないと、痛い目にあいそう。
というか、時間計測くらいしか使いどころが分からない・・・。

2016年2月4日木曜日

【CSS】【javascript】ドラッグアンドドロップはhoverではない

タイトルどおりなのですが。

ブラウザにファイルをドラッグアンドドロップしてアップロード・・・というものを作っているとき、
指定のゾーンにドラッグしているマウスが移動したら、色を変えるなりしようと思っていたのですが、
実際には、うまく動かない。
ファイルをドロップした後に、hoverとして認識されてしまう。
どうやら、cssのhoverではドラッグ中のマウスは感知できない。
こんなときは、javascriptのdrag~イベントを使うしかないみたい。


マウスがホバーなんだからいいじゃん!とは思ったけど、全くの別物のようです。
ちょっと混乱したのでメモ。

2016年2月1日月曜日

【phpMyAdmin】【excel】csvをインポートすると先頭の文字が消える

東京都○○区・・・というデータをインポートするが、
都○○区となっていて仰天。

エクセルからcsvを書き出し、phpMyAdminにインポートしようとすると、ファイル先頭の2文字が消えることがある。
文字化けとかではなく、文字欠け。ぐぐっても文字化けの問題ばかりひっかかるので、一応メモ。

エクセル → ヘッダ削除 → CSVにエクスポート → テキストエディタでエンコードをUTF-8に変更 → インポート → 文字欠けで死亡!

悪さが起きるのがファイル最初の文字なので、BOMがゴニョゴニョとしているのかもしれないが、
とりあえず、バッドノウハウだけ書いておこう。

エクセル → CSVにエクスポート → テキストエディタでエンコードをUTF-8に変更 → インポート →

インポート時、phpMyAdminの部分インポートというところで

Skip this number of queries (for SQL) or lines (for other formats), starting from the first one:

の値を「1」
とする。最初の一行をヘッダ扱いで無視するよ・・・ということ。これでたぶん問題なし!
根本的に解決してないので、モヤモヤしますが。

2016年1月27日水曜日

【php】配列をCSVに書き出し&文字コード変換

表題どおり。
配列内の要素を一つ一つshiftjisに変換してから書き込んでいます。
日本語文字コードを一つに統一して欲しいのだけど、血を血で洗う戦争が起きたりするのでしょうか。
    $csv = new SplFileObject( "csv.csv", "w" );
    foreach ($array_for_csv as $raw_array) {
        $encodedarray =array();
        foreach ($raw_array as $rawtext) {
            $encodedarray[] = mb_convert_encoding($rawtext,'SJIS');
        }
        $csv->fputcsv($encodedarray);
    }
    fclose($csv);

2016年1月13日水曜日

【mysql】最新状況を検索したいの続き

よく考えたら前回の記事では最新状況の一覧は出せたが、検索はできていなかった。

(前回)

FLOW: start -- aaa--bbb--ccc--end

select * from ( select * from log where status = "aaa" OR status = "bbb" OR status = "ccc" order by date desc) as t group by product order by date desc
//all id's recent log

ここからさらに塗装中の個別IDを拾いたいときは、こんな感じ

select * from (select * from ( select * from log order by date desc) as t group by product order by date desc) as t2 where status ="aaa"
//search where recent status is  "aaa"

2016年1月9日土曜日

【mysql】最新状況を検索したい

例えばある製品の製造工程をログにとっているとして、
テーブルは
id product status date
という項目、
開梱→組み立て→塗装→梱包→発送
というフローだとする。
このうち、組み立てから梱包までの作業上にある製品の、最新ステータスを検索したいとき

select * from ( select * from log where status = "組み立て" OR status = "塗装" OR status = "梱包" order by date desc) as t group by product order by date desc

group by で値を拾うときはテーブルの一番上の行を採用するらしいので、
ソートをかけて拾いたい最新のデータを、()内で一番上にもってきている。

2016年1月8日金曜日

【javascript】簡潔な配列の宣言

var array1 = ["contents1","contents2","contents3","contents4","contents5","contents6"];
var array2 ="contents1,contents2,contents3,contents4,contents5,contents6".split(",");

下のほうが書きやすく、要素が多くなるほど文字数を省ける

2015年12月29日火曜日

PHPの連想配列を表にしたい

$curry['肉'] = ['牛肉','鶏肉','豚肉','ひき肉'];
$curry['野菜'] = ['人参','ジャガイモ','玉ねぎ','ほうれん草','トマト'];
$curry['炭水化物'] =['お米','ナン'];

こんな連想配列を

具材種類
牛肉 鶏肉 豚肉 ひき肉
野菜人参 ジャガイモ 玉ねぎ ほうれん草 トマト
炭水化物お米 ナン
としたい

echo "<table>";
      foreach($curry as $key => $value){
         echo "<tr><td> $key </td><td>";//ここで得られる$valueは配列
         foreach ($value as $key2 => $value2) {
            echo $value2." " ;
         }
         echo "</td></tr>";
      }
echo "</table>";