JS触发hidden属性文本框的change事件

针对hidden属性的文本框或select等元素,如何在通过JS改变其值时,触发change事件呢?

 

在日常的项目中,经常会因为各种问题,搞一堆hidden属性的input文本框(甚至select下拉框),当我们通过js去给这些form属性赋值的时候,是不会触发元素的change事件的,那么此时该如何做呢?

 

jQuery change()方法

定义和用法

当元素的值发生改变时,会发生 change 事件。
该事件仅适用于文本域(text field),以及 textarea 和 select 元素。
change() 函数触发 change 事件,或规定当发生 change 事件时运行的函数。
注释: 当用于 select 元素时,change 事件会在选择某个选项时发生。当用于 text field 或 text area 时,该事件会在元素失去焦点时发生。

将函数绑定到 change 事件

规定当被选元素的 change 事件发生时运行的函数。

$(selector).change(function)
触发change事件

触发被选元素的 change 事件。

$(selector).change()

所以,当我们在赋值后可以加上change()即可触发change事件,即:

$(selector).val(new_value).change();

 

macOS Sierra系统下PHP5.6安装memcached扩展

一、下载扩展包及依赖

libmemcached下载地址
https://launchpad.net/libmemcached/+download

php-memcached下载地址 (PHP5.6选择2.2.0版本,PHP7选择3.X版本)
http://pecl.php.net/package/memcached

二、安装libmemcached依赖

mkdir -p /usr/local/libmemcached
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make && make install

继续阅读

WordPress只显示当前主题,不展示已安装主题列表

最近一个老站(WP)迁移到新的主机上之后,安装的主题仅展示在用的一个,重新安装WordPress新版也不管用,看了下相关代码发现用到了PHP的scandir函数,而新环境中PHP配置把此函数禁用掉了,需将php.ini 中disable_functions里面scandir去掉即可。


vi /usr/local/php/etc/php.ini

找到disable_functions这一行,然后把scandir 去掉;

然后重启 php 服务:service php-fpm restart (或:/etc/init.d/php-fpm restart )即可。

Rsync结合Inotify 实现Centos文件实时同步更新

一. 背景

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!

恩,这是抄的别人的一句话,参见http://www.cnblogs.com/davidwang456/p/3684945.html

inotify 介绍

inotify是一种强大的、细粒度的、异步的文件系统事件控制机制。linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件。
继续阅读

Mac下iterm2一些配置

1.需要的时候把 iterm2 呼出来,不需要的时候自动隐藏.

我个人非常喜欢这个功能,需要的时候在屏幕顶部展示,不需要的时候隐藏不占地方

iTerm2 – Preferences – Keys

左侧 Hotkey 选项 勾选 Show/hide iTerm2 with a system-wide hotkey

并且可以在 Hotkey 文本框处 设置一个你喜欢的全局快捷键 ,我自己使用的是 option + command

这样不管你在干什么的时候,只要敲打你上面设置的热键,iterm2 直接呼出, 搜噶~~~

2.Preferences – Profiles – Terminal – Terminal Emulation – Report Terminal Type

将其中的 xterm 改成 xterm-256color,比如在 Vim 显示一些配色方案会好很多

3.复用上个会话的目录

Preferences – Profiles – Working Directory – Reuse previous session’s directory

分享一些关于iterm2 的快键键:

⌘ + Click:可以打开文件,文件夹和链接

⌘ + n:新建窗口

⌘ + t:新建标签页

⌘ + w:关闭当前页

⌘ + 数字 & ⌘ + 方向键:切换标签页

⌥⌘ + 数字:切换窗口

⌘ + enter:切换全屏

⌘ + d:左右分屏

⇧⌘ + d:上下分屏

⌘ + ;:自动补全历史记录

⇧⌘ + h:自动补全剪贴板历史

⌥⌘ + e:查找所有来定位某个标签页

⌘ + r & ⌃ + l:清屏

⌘ + /:显示光标位置

⌥⌘ + b:历史回放

⌘ + f:查找,然后用 tab 和 ⇧ + tab 可以向右和向左补全,补全之后的内容会被自动复制, 还可以用 ⌥ + enter 将查找结果输入终端

选中即复制,鼠标中键粘贴

yii批量插入的方法

在开发中遇到过这样问题,foreach循环插入数据时,表中只插入了循环的最后一条数据,而其它数据没有真实添加,追踪发现,内存地址中循环时新一条数据会覆盖前一条数据,解决办法是另起一个对象;

如下:

第一种方法

$model = new User();
foreach($data as $attributes)
{
     $_model = clone $model; //克隆对象
     $_model->setAttributes($attributes);
     $_model->save();
}

第二种方法

$model = new User();
foreach($data as $attributes)
{
      $model->isNewRecord = true;
      $model->setAttributes($attributes);
      $model->save() && $model->id=0;
}

Yii2.0 设置伪静态 / yii2.0 rewrite设置

1. 开启 apache 的 mod_rewrite 模块
打开apache/conf/httpd.conf,找到
LoadModule rewrite_module modules/mod_rewrite.so,然后去掉前的“#”符号;

2. 修改 apache httpd.conf中的 AllowOverride

把 AllowOverride None 修改为 AllowOverride All;

3. 两种方式任选其一

①在与index.php文件同级目录(web目录)下添加文件“.htaccess”

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

②在httpd-vhost.conf中设置

<VirtualHost *:80>
ServerName www.yii.loc
DocumentRoot “D:/xampp/htdocs/study/basic/web”
<Directory “D:/xampp/htdocs/study/basic/web”>
# 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项)
RewriteEngine on
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果请求的不是真实文件或目录,分发请求至 index.php
RewriteRule . index.php
# …其它设置…
</Directory>
</VirtualHost>

4. 配置应用的urlManager

需要在config/web.php中的components数组下增加:

‘urlManager’ => [
‘enablePrettyUrl’ => true,
‘showScriptName’=>false,
‘rules’ => [
// your rules go here
],
// …
],
具体可用属性,可查阅API文档。

yii2.0与之前版本配置略有不同,根据文档显示:

http://www.yiiframework.com/doc-2.0/yii-web-urlmanager.html

如何识别微信内置浏览器访问(识别扫一扫来源)

最近给公司做App统一扫描下载入口时,遇到一个问题,安卓版微信会屏蔽apk的下载,于是在扫码时,需判断是否是微信扫码,下面提供PHP和Js两种判断方法:

 

JavaScript版本判断

function is_weixn(){
  var ua = navigator.userAgent.toLowerCase();
  if(ua.match(/MicroMessenger/i)=="micromessenger") {
    return true;
  } else {
    return false;
  }
}

 

PHP判断

function isWeixin(){
  $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
  $is_weixin = strpos($agent, 'micromessenger') ? true : false ;
  return $is_weixin;
}