php接收ajax请求,thinkphp接收不到ajax传递的post数据
php接收ajax请求,thinkphp接收不到ajax传递的post数据详细介绍
本文目录一览: php如何获取jquery ajax传递过来的值?
方法和详细的操作步骤如下:
1、第一步,安装并配置PHP集成环境,以phpstudy为例,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,在www目录中创建一个新的html文件(new1.html)和一个php(ab.php)文件,见下图,转到下面的步骤。
3、第三步, 完成上述步骤后,html文件首先引用所需的类库jquery文件,然后引用正文部分,以简单的表单提交为例,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,html的javascript-ajax部分,以上一步正文中的cilik事件为例,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,php文件的准备部分主要使用$ _POST接受ajax传输的数据,并且可以返回不同类型的数据。 例如回声结果或转码为json格式的json_encode数据将返回到前端进行处理,见下图,转到下面的步骤。
6、第六步,完成上述步骤后,结果显示:提交表单中的内容后,无需刷新即可显示该内容,见下图。这样,就解决了这个问题了。
jQuery ajax 中传递数据到php文件,php文件怎么接收
跟正常接收数据 是一样的 ,
$.ajax({
type: 'POST',
url: url
,
data: data
,
success: success
,
dataType: dataType
});
这里 ajax 使用 POST 类型提交,php 就用 $_POST 接收。
ajax POST提交的话,PHP 接受 $_POST['name'];
ajax GET提交的话,PHP 接受 $_GET['name'];
thinkphp怎样获取ajax请求数据
一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.
首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:
代码如下:
上面的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();
});
php如何获取jquery ajax传递过来的值?
程序如下:
if ($_REQUEST['act'] == 'c**ignee_list')
{
/*
* 检查用户是否选择匿名购物
*/
if (isset($_REQUEST['direct_shopping']))
{
$_SESSION['direct_shopping'] = 1;
} /*
* 检查用户是否已经登录
* 如果用户已经登录了则检查是否有默认的收货地址
* 如果没有登录则跳转到登录和注册页面
*/
if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0)
{
/* 用户没有登录且没有选定匿名购物,转向到登录页面 */
$result['error'] = 1;
$result['message'] = '对不起,您没有登录或者您未选择匿名购物!';
echo $json->encode($result);
exit;
}
}
echo $json->encode($result);
$('#addr_modify').click(function(){
$.ajax({
type: "POST",
url: "flow_ajax.php?act=c**ignee_list",
cache: false,
data: "&m=" + Math.random(),
beforeSend:function(){$('#addr_modify').html('[获取中...]')},
success:function(data){
re = $.evalJSON(data);
alert(re.message);
if(re.error == 1)
{
alert(re.message);
window.location.href="flow.php?step=cart" + "&m=" + Math.random();
return;
}
else if(re.error == 2)
{
alert(re.message);
window.location.href="flow.php?step=c**ignee";
return;
}
$('#addr_modify').hide();
$('#addr_okbox').hide();
$('#addr_editbox').show();
// $('#addr_editbox').html(re.content_list);
// $('#addr_edit_table').html(re.content_table);
}
})
});
1、程序不仅需要给计算机读 , 也要给程序员读。 程序设计风格的原则 , 代码应该清楚的和简单的 , 具有直截了当的逻辑 , 自然的表达式 , 通行的语言使用方式 , 有意义的名字和帮助作用和注释。
2、编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给 出明确的注释说明。 测试代码部分应作为一个子模块, 以方便测试代码在模块中的安装与拆 卸(通过调测开关) 。
php如何接收ajax发送的字符串
接收端:$tel=$_POST['tel'];
发送端:
$.post('check.php',{'tel':$(this).val()},function(data){
//alert(data.length);
var newdata=data.replace(/(\s*$)/g,"");
php ajax post数据接收不到
把data中的dysl价格单引号变成'dysl'试试,还有$.ajax({});后面加个分号!你试一下!
服务器有没有开
路径有没错
控制台显示什么 network返回什么
(ps:不换行的写法 好别扭)
用浏览器调试工作看看js有没有报错,看看有没有触发点击事件,点击事件有没有触发jia()方法
首先要确定ajax发起了请求,并且携带了参数。
可以使用浏览器的“审查元素”功能来查看异步请求的执行状况。
以360浏览器为例:
1、按下F12后会打开审查元素窗口。
2、选择Network。
3、执行一次ajax请求,在下面文本框中会多一条请求数据。类型为xhr。
4、点击该条请求数据,可以在右侧的详情中查看到请求携带的参数。
本例中请求名称为sug,携带了参数是kw=1。请求的方式是post请求。
如果是get请求,可以使用$_GET来获取。
如果是post请求,可以使用$_POST来获取。
所以本例在服务端使用$_POST['kw']即可获取到值"1"。
thinkphp接收不到ajax传递的post数据
排查这个问你你需要重两个地方入手,确定传递的所有数据是否都取到,使用console.log(内容)打印出你要传递的值,这里没问题直接访问你php的方法随便输出一个字符,取到值了也能访问了,一般接收就没问题了
php后台怎么获取ajax方法从前台传的数据
这样的,使用ajax进行后台访问数据无法直接从浏览器上或者直接看到,解决方式可以尝试
1、在你接收ajax请求的php代码中,将数据写到指定的文件中一边查看
2、在你接收ajax请求的php代码中,将数据在返回给前端即可,在浏览器里可以看见
ajax,页面怎么接收php返回的二维数组
在回调函数里接收啊
ajax接收数据首先,要发起请求,有请求有响应才是一个完整的http;例如:
$.ajax({url:'php.php',type:'get',dataType:'json',success:function( data ){console.log( data );},error:function(){console.log('请求失败');}})php.php
array('张三',20),'arr2' => array('李四',30),);//声明响应头header('content-type:text/json');//返回数据echo json_encode($data);?>