导航:首页 > 编程语言 > phpisajax

phpisajax

发布时间:2023-06-05 13:49:21

1. php怎么接收jQuery的Ajax post过来的值

1、首先安装配置php集成环境。以phpstudy为例。

2. php 怎么判断是否ajax请求

思路:在你进行ajax请求的时候,设置一个文件头信息的变量,在php端判断这个信息是否存在以及是否等于自己设置的值,就可以知道是否是ajax请求了。

做法:js端发送头信息
对象.setRequestHeader("变量名","变量值");
如 xmlHttp..setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest");
php端接受信息,注意此时接受的变量存在 $_SERVER['HTTP_变量名'];中,
如上面的例子则为$_SERVER['HTTP_X_REQUESTED_WITH'];
echo isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest')?'it is ajax':'it is not ajax';

注释:js和jquery中有些许不同,自己注意一下,再者变量名字不要冲突了

附加:如果这是你自己的网站,你只是自己区别一下的话,这样就可以了,但是,它是防止不了别人盗用你的ajax数据的,因为这些都是可以模拟的,一个好的方法是设计session验证之类的。

3. PHP如何判断是否为AJAX请求

4. thinkphp怎样获取ajax请求数据

一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.
首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:
代码如下:

<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >删除</a>
上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:
jQuery(".list a.delete").click(function(){
if(confirm("你确定要删除吗?")){
var _this=this;
var id = jQuery(_this).attr("id");
jQuery.ajax({
url : '/Search/index.php/Jason/delete?',
data : {'id':id},
dataType : 'json',
success : function(data){
var del = data.del;
if(del == 1){//删除成功
jQuery("#"+id).parents(".list").remove();
}else{//删除失败
alert("删除失败");
}
}
});
}
});

大家看函数的头部:jQuery(".list a.delete").click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:
注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:
代码如下:

public function delete(){
if($this->isGet()){
$userId = session("uid");//用户登录
if(!empty($userId)){
$a = M('***');
$id = $this->_get('id');
$result=$a->where("id=$id")->delete();//删除
if($result > 0){
$arr = array("del"=>'1');
}else{
$arr = array("del"=>'0');
}
$json_str = json_encode($arr);
echo $json_str;//返回给js
}
}
}

相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.
var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.

复制代码代码如下:
if(del == 1){//删除成功
jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,
}else{//删除失败
alert("删除失败");
}
整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:
即将:
代码如下:
jQuery("#"+id).parents(".list").remove();
替换为:
代码如下:

jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});

5. thinkphp 验证是不是ajax提交

有两种方式,如下:

第一种方式
PHP判断ajax请求的原理:
在发送ajax请求的时候,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息, 在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,php中就是在header一层判断是否是ajax请求,对应的根据$_SERVER['HTTP_X_REQUESTED_WITH']判断。
/**
* 当前请求是否ajax请求
*
* @access public
* @return bool
*/
function isAjax()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']);
}


注意:
● 一般情况下$_SERVER['HTTP_X_REQUESTED_WITH']默认是XMLHttpRequest
● $_SERVER['HTTP_X_REQUESTED_WITH']也可以自定义创建的,使用XMLHttpRequest.setRequestHeader(name,value);参考文章:http://www.skygq.com/2011/01/04/php-check-request-from-ajax-or-normal/

第二种方式
通过前台给php传一个type参数来判断,type=1则是ajax,否则是普通提交。

6. thinkphp中怎么用ajax

thinkphp中使用ajax很简单.主要掌握的地方有三个.

第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")

第二.控制器中返回结果得第一种方法.$this->error('失败','',true); 第三个参数为true.则发挥的是json数据.包含info.status.url三项.

第三.控制器中返回结果的第二种方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).

掌握以上三点和ajax基本使用方法.那么在tp中使用ajax也就掌握了.简单的例子如下.伪代码,或许有错.

模板中:

<script>
$.post("{:U('User/add')",{uname:xiaoming,age:15},function(data){
//data接收返回数据
if(data.status==1){
alert(data.info);
location.href=data.url;
}else{
alert('错误');
}
});
</script>

控制器中:

publicfunctionadd(){
if(IS_AJAX){
$name=I('post.name','','trim');
$age=I('post.age','','trim');
if($name&&$age){
//插入数据
$this->success('添加成功',U('User/index'),true);
}else{
$this->ajaxReturn(array(
'status'=>0,
'info'=>'大爷,您没输入名字',
'url'=>U('User/add')
));
}

}else{
returnfalse;
}
}

大概就是这样子.至于剩下的$.ajax.$.getJson等等都是一样的道理

阅读全文

与phpisajax相关的资料

热点内容
都市之开局被10个老婆宠成 浏览:232
程序员两年应该多少工资 浏览:964
极盗者2在线免费观看 浏览:853
男男电影免费观看推荐 浏览:360
福建u盘加密联系方式 浏览:516
釜山行3免费完整观看国语 浏览:78
官神夏想几个老婆 浏览:249
看片网站知乎 浏览:60
张鸣pdf 浏览:172
王者区苹果怎么转安卓 浏览:77
蛇的电影免费的完整版 浏览:30
哈萨克 电影 浏览:986
少女大尺度电影禁片 浏览:210
python列表get的用法 浏览:832
安卓平板如何用外接键盘玩游戏 浏览:289
汉中地面波加密了吗 浏览:796
成龙演的五行拳的电影 浏览:297
python字符串转string 浏览:357
在电影院不要说话用英语怎么说 浏览:807
重生香江开银行建立财团的小说 浏览:128