jQuery中this与$(this)的区别

日志

 

起初以为this和$(this)就是一模子刻出来。但是我在阅读时,和coding时发现,总不是一回事。

What is “this”?

In many object-oriented programming languages, this (or self) is a keyword which can be used in instance methods to refer to the object on which the currently executing method has been invoked.

 

$(“#textbox”).hover(
function() {
this.title = “Test”;
},
fucntion() {
this.title = “OK”;
}
);

这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的。
但是如果将this换成$(this)就不是那回事了,Error–报了。

Error Code:
$(“#textbox”).hover(
function() {
$(this).title = “Test”;
},
function() {
$(this).title = “OK”;
}
);

这里的$(this)是一个JQuery对象,而jQuery对象沒有title 属性,因此这样写是错误的。

JQuery拥有attr()方法可以get/set DOM对象的属性,所以正确的写法应该是这样:

正确的代码:
$(“#textbox”).hover(
function() {
$(this).attr(’title’, ‘Test’);
},
function() {
$(this).attr(’title’, ‘OK’);
}
); 继续阅读

Ajax删除效果WEB前端开发

日志

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Ajax删除效果</title>
<link rel=”stylesheet” type=”text/css” media=”screen, projection” href=”demo.css” />
<script type=”text/javascript” src=”http://www.css88.com/tool/css3Preview/jquery-1.4.2.min.js“></script>
<script type=”text/javascript”>
$(function() {
$(“.delete”).click(function() {
var commentContainer = $(this).parent();
var id = commentContainer.attr(“id”);
var string = ‘id=’+ id ;
$(this).after(‘<div>你确定删除该评论吗?<br/> <span>确定</span><span>取消</span></div>’);
$(this).next(‘.question’).animate({opacity: 1}, 300);
$(‘.yes’).bind(‘click’, function(){
$.ajax({
type: “GET”,
url: “delete.html”,
data: string,
cache: false,
success: function(){
commentContainer.slideUp(‘slow’, function() {commentContainer.remove();});
}
});
return false;
});
$(‘.cancel’).bind(‘click’, function(){
$(this).parents(‘.question’).fadeOut(300, function() {
$(this).remove();
});
});
/*var commentContainer = $(this).parent();
var id = $(this).attr(“id”);
var string = ‘id=’+ id ;
$.ajax({
type: “GET”,
url: “delete.html”,
data: string,
cache: false,
success: function(){
commentContainer.slideUp(‘slow’, function() {$(this).remove();});
}
});
return false;*/
});
});
</script>
<style>
body { 继续阅读

PHP获取IP地址实现不同地区城市跳转的功能

日志

PHP获取IP地址

  这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段:
  1. <?
  2. //PHP获取当前用户IP地址方法
  3. $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  4. $xp_UserIp = ($xp_UserIp) ? $xp_UserIp : $_SERVER["REMOTE_ADDR"];
  5. ?>

php根据ip跳转到不同的地区城市

PHP通过IP地址判断用户所在城市

   上文已经获得了用户IP地址,接下来,我们就是根据这个IP地址获得用户所在城市了。开始之前,我们需要下载一个现成的数据库QQ IP数据库。

php mysql 导出excel,支持大数据量

日志

 

在日常的应用开发中,导出数据,是非常普通的需求,几乎成了必备项。在导出的文件格式中,常见的有 excel, txt, pdf, csv等。通常情况下EXCEL的格式,就是利用 CSV 的形式来实现的。

对于PHP的应用,操作EXCEL,有一些开源的类库,例如:PHPExcel

本文介绍的不是使用第三方的类库,而是使用PHP自带的功能,那就是 fputcsv 这个函数,fputcsv是PHP5引入的函数。

如果你使用的是PHP4,那么请使用自定义函数

<?php
// 输出Excel文件头
header('Content-Type: application/vnd.ms-excel;charset=gbk');
header('Content-Disposition: attachment;filename="文件名.csv"');
header('Cache-Control: max-age=0');

// 从数据库中获取数据
$sql = 'select * from `table` where ……';
$stmt = @mysql->query($sql);

// PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');

// 输出Excel列头信息
$head = array('姓名', '性别', '年龄', 'Email', '电话', '……');
foreach ($head as $i => $v) {
    // CSV的Excel支持GBK编码,一定要转换,否则乱码
    $head[$i] = iconv('utf-8', 'gbk', $v);
}

// 写入列头
fputcsv($fp, $head);

// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,节约资源
$limit = 100000;

// 逐行取出数据,节约内存
while ($row = $stmt->fetch(FETCH_NUM)) {

    $cnt ++;
    if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
        ob_flush();
        flush();
        $cnt = 0;
    }

    foreach ($row as $i => $v) {
        $row[$i] = iconv('utf-8', 'gbk', $v);
    }
    fputcsv($fp, $row);
}

dirname(__FILE__) 用法

日志

dirname(__FILE__) 就是取得当前文件所在的目录
通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题。
dirname(dirname(__FILE__)); // 假设__FILE__为 /home/web/config/config.php ,输出为 /home/web
dirname(dirname(__FILE__)); 得到的是文件上一层目录名
dirname(__FILE__); 得到的是文件所在层目录名

php跳转的三种方法

日志

最近用header函数跳转在服务器上有限制。就去找了php的 代码,发现以下几种跳转的方法:

方法一:使用PHP自带函数
Header(“Location:网址“);
说明:必须在网页没有任何输出的时候执行,要特别要注意空格。

方法二:利用meta
echo “<meta. http-equiv=refresh content=’0; url=网址’>”;
说明:没有方法一的限制,但是如果前面有输出,则输出的内容会闪烁一下然后进入 跳转到的页面。

方法三:利用Javascript语言
echo “<script. language=’javascript’>”;
echo ” location=’网址’;”;
echo “</script>”;

Warning: session_start() [function.session-start]: Cannot send session…

日志

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at D:\orther object\phptest\session.php:1) in D:\orther object\phptest\session.php on line 2

错误原因:大家如果用dreamwever的话;请在某个页面上右键==>页面属性==>标题/编码

就会看到一个“包括Unicode 签名(BOM)(S)”的复选框;把它取消选择;然后应用即可····