作者:夜遊神_丶 | 来源:互联网 | 2017-05-14 02:19
先在用手机,所以无图,只能口述a.html{代码...}b.jsajax传值给b.php{代码...}c.php接收到,并返回{代码...}问题来了,如果php判断aa不存在的时候,弹出提示框error,那么这里的a.html的test标签的值就...
先在用手机,所以无图,只能口述
a.html
no
1
b.js
ajax传值给b.php
var aa = $('#aa').html();
.ajax({
url:"a.php",
type:"POST",
data{test:test},
success:function(data){ $('#test').html(data)} //ajax中success返回并改变test的值
error:function(){}
});
c.php
接收到,并返回
if(isset($_POST['aa']))
{
echo "alert('success');";
echo "yes";
}
else
{
echo "alert('error');";
}
问题来了,如果php判断aa不存在的时候,弹出提示框error,那么这里的a.html的test标签的值就会有任何值,不会显示原来的值,而是空白。如何让即使错误也会显示原来的值
回复内容:
先在用手机,所以无图,只能口述
a.html
no
1
b.js
ajax传值给b.php
var aa = $('#aa').html();
.ajax({
url:"a.php",
type:"POST",
data{test:test},
success:function(data){ $('#test').html(data)} //ajax中success返回并改变test的值
error:function(){}
});
c.php
接收到,并返回
if(isset($_POST['aa']))
{
echo "alert('success');";
echo "yes";
}
else
{
echo "alert('error');";
}
问题来了,如果php判断aa不存在的时候,弹出提示框error,那么这里的a.html的test标签的值就会有任何值,不会显示原来的值,而是空白。如何让即使错误也会显示原来的值
一般我们是后端返回一个json
格式的串,然后跟据成功或失败返回的状态不一样,再然后跟据这个返回状态去显示test
标签的内容,如果成功替换,如果失败不做操作~~
success 的 function里面 判断下data是否为空 if(data.length==0) {return false}
php中理论上不应该包含这样的html代码,通常的做法是php中返回状态码来表示结果,如果失败返回错误状态码,成功则返回成功状态码以及要输出的内容,js再根据状态码来处理结果。这个状态就取决于你如何去定义了。
首先,从结果中载入是一个非常恶心的行为,虽然你实现了这个效果。其次,即使你这样去做,起码在.html()之前作一个判断,你让php去判断,而不是js去判断和操作,这种思路真的很醉。