2016年11月23日 星期三

【Jquery】抽獎轉盤、輪盤

這次要做轉盤抽獎,像是這樣:
於是我在網路上找範例,找到了這個網站:
http://www.js-css.cn/a/jscode/award/2015/0211/1452.html
備份檔案:檔案下載

範例是純js製作,因為要發送折價券給會員及安全性考量,
所以需要改成 ajax 與 php 配合,
原理很簡單就是每格給予一個號碼,再用號碼算出要轉的角度,
再利用awardRotate.js指定要停在哪一格,

例如:
指定好每格號碼後,算出每格角度,
用php的 rand(0,6) 隨機找出一個數字,
每格角度:360 / 7
再用這個數字算出角度,
如今天抽到數字 2 公式:
(360 / 7 ) * 2 + (+-20)


因為不想每次都停在正中間,
所以我再給他加一個正負值 360 / 7 大約等於 51 一半是25,
所以我抓+-20
簡易程式說明JS:
PHP:

2016年11月22日 星期二

【HTML】網頁訊息用手機分享訊息 LINE 、 簡訊sms 、 Email

網頁要用手機分享LINE訊息、簡訊與Email

LINE:
<a href="http://line.naver.jp/R/msg/text/?分享內容">分享到Line</a>
※ 斷行要用:%0D%0A

簡訊:
<a href="sms:號碼(可留空)?body=簡訊內容">簡訊分享</a>
※ 簡訊分享在IOS不同版本要用不語法:
iOS < 7 <a href="sms:0412345678;body=text">send sms</a>
iOS > 7 <a href="sms:0412345678&body=text">send sms</a>
可以用 navigator.userAgent.match(/iPhone/i) 找出目前的系統再去換連結
※ 斷行要用:%0a

Email:
<a href="mailto:寄給誰(可留空)?subject=信件標題&body=信件內容">Email</a>
※ 斷行要用:%0D%0A

2016年11月17日 星期四

【PHP】rand 配合資料庫隨機不重複

如果有一批折價券,折價券編號為 2130001 ~ 2130500,
要隨機挑出一張發給使用者,發過的下次就不能再發,
作法:
1.先抓總數量還有多少張可以發 (要扣掉已發過的)
2.用 rand(1,500) 抓出一個數字
3.如找到321,去資料庫找第321筆是哪個折價券編號
4.因為發出一張,下次就會變成 rand(1,499)

2016年11月16日 星期三

【PHP】字串只取數字

今天一串字串要只取中的數字,
原理:用正規表示法做取代,取代除了數字以外的都取代成空白
Example:
$str = "單價:750"; // 只要取750
preg_replace('/[^\d]/','',$str);

【Jquery】twzipcode 臺灣 3 碼郵遞區

twzipcode 快速建立郵遞區號及縣市,
以前都是自己做,把對應縣市及郵遞區號放在資料庫裡,
之後每次都要到資料抓,用了twzipcode真的快多了,
簡易用法:

2016年11月15日 星期二

【PHP】單數&複數 位元運算子

今天在查資料時突然看到單複數的範例,
一般網站都是直接%2看有沒有餘數,
但他是用位元運算子 (Bitwise Operators),
挖這是讀書時才聽過的東西,這邊記錄一下,
網站真的比較少用:
function odd($var)
{
    return($var & 1);
}

function even($var)
{
    return(!($var & 1));
}

2016年11月14日 星期一

【PHP】把 table 的寬變成空白,preg_replace取代某部分

本來覺得很簡單的問題,結果試了好久,這邊紀錄一下,
今天有一段字串,
例如:<table class="mytable" width="200" height="300">
目的把是把 width="" 變成:
<table class="mytable" width="" height="300">
作法:

【PHP、MySQL】SQL搜尋分段LOG

今天要抓出半年內每個商品被點擊次數,在存入 PROD_CLICK
因為 LOG 量太大,所以每個月都會產生新的表單來儲存
類似:PROD_LOG_1606 ~ PROD_LOG_1612
所以要搜尋半年就會有6個資料表
步驟:
1.依目前日期及指定幾個月算出有幾個資料表
方法很多,可以直接用月份去減,但為了比較活我這邊是用天數去減,
$prod_click_day = $SS->getData('prod_click_day'); // 抓出設定天數
$day = strtotime("-$prod_click_day day"); // 用時間戳記來算差別的日期
$difMonth = date("m",time() - $day); // 算出與面前相差的月份

2016年11月9日 星期三

【PHP】PChome 廣告刊登-免費刊登廣告,製作匯入ZIP檔

這次要將公司商品放在PChome免費廣告中,
在廣告刊登中有一項多筆匯入的功能,
我要寫程式匯出商品後直接匯入PChome,
有點麻煩所以做成筆記,
匯入的限制:要上傳ZIP並裡面附圖片且圖要超過400*400,每張圖不能超過200K。


製作步驟
1.首先第一步當然是將公司上架商品從資料庫撈出來
因為有檔案大小限制10MB,所以要做分頁上傳,一張圖片抓100kb,
一次只能上傳100筆,結果5000多品就要上傳50幾次..

2016年7月25日 星期一

【PHP】會員層級 遞迴運用

今天有個case要做會員層級的階層圖
畫面如下:
HTML:
<ul id="org" style="display:none">
    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
        <ul>
            <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
                <ul>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                </ul>
            </li>
            <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
                <ul>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                </ul>
            </li>
            <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
                <ul>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                </ul>
            </li>
            <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美
                <ul>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                    <li><span class="icon"><img src="/images/icon_man.png" alt=""></span>林筱美</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<link rel="stylesheet" href="/css/jquery.jOrgChart.css">
<script type="text/javascript" src="/js/jquery.jOrgChart.js"></script>
<script>
$(document).ready(function() {
    $("#org").jOrgChart({
        chartElement: '#chart'
    });
});
</script>