Home > Backend Development > PHP Tutorial > jQuery 中的ajax在没有获取php返回的值时,原来html的标签的值会是空白,怎么解决?

jQuery 中的ajax在没有获取php返回的值时,原来html的标签的值会是空白,怎么解决?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:31:18
Original
1102 people have browsed it

先在用手机,所以无图,只能口述

a.html

<code><a id="test">no</a>
<a id="aa">1</a>
</code>
Copy after login
Copy after login

b.js
ajax传值给b.php

<code>var aa = $('#aa').html();   
.ajax({
    url:"a.php",
    type:"POST",
    data{test:test},
    success:function(data){ $('#test').html(data)} //ajax中success返回并改变test的值
    error:function(){}
});
</code>
Copy after login
Copy after login

c.php
接收到,并返回

<code>if(isset($_POST['aa']))
{
    echo "<script>alert('success');<script>";
    echo "yes";
}
else
{
     echo "<script>alert('error');<script>";
}
</script></code>
Copy after login
Copy after login

问题来了,如果php判断aa不存在的时候,弹出提示框error,那么这里的a.html的test标签的值就会有任何值,不会显示原来的值,而是空白。如何让即使错误也会显示原来的值

回复内容:

先在用手机,所以无图,只能口述

a.html

<code><a id="test">no</a>
<a id="aa">1</a>
</code>
Copy after login
Copy after login

b.js
ajax传值给b.php

<code>var aa = $('#aa').html();   
.ajax({
    url:"a.php",
    type:"POST",
    data{test:test},
    success:function(data){ $('#test').html(data)} //ajax中success返回并改变test的值
    error:function(){}
});
</code>
Copy after login
Copy after login

c.php
接收到,并返回

<code>if(isset($_POST['aa']))
{
    echo "<script>alert('success');<script>";
    echo "yes";
}
else
{
     echo "<script>alert('error');<script>";
}
</script></code>
Copy after login
Copy after login

问题来了,如果php判断aa不存在的时候,弹出提示框error,那么这里的a.html的test标签的值就会有任何值,不会显示原来的值,而是空白。如何让即使错误也会显示原来的值

一般我们是后端返回一个json格式的串,然后跟据成功或失败返回的状态不一样,再然后跟据这个返回状态去显示test标签的内容,如果成功替换,如果失败不做操作~~

success 的 function里面 判断下data是否为空 if(data.length==0) {return false}

php中理论上不应该包含这样的html代码,通常的做法是php中返回状态码来表示结果,如果失败返回错误状态码,成功则返回成功状态码以及要输出的内容,js再根据状态码来处理结果。这个状态就取决于你如何去定义了。

首先,从结果中载入<script>是一个非常恶心的行为,虽然你实现了这个效果。其次,即使你这样去做,起码在.html()之前作一个判断,你让php去判断,而不是js去判断和操作,这种思路真的很醉。</script>

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template