你如果想让后台以json格式返回数据,那么php就一定要用标准的json格式来输出数据,不要混杂其他无关数据.比如你的"返回的数据:"这几个字就属于多余数据,ajax在接收到返回数据后就会转换失败.所以你的 echo "返回的数据:"; 应该删掉(如果还有其他类似的输出语句也要删掉),确保输出的数据只有 ["jeff-A-01.png","jeff-d-01.png"] 这样的内容.
使用thinkphp框架开发,不知道如何返回JSON字符串,ajax无法调用 有三种方式可以返回
①.、若是数据库实体,可以使用toJson()方法
$user = User::get(1); echo $user-toJson();
$data = [? 'result'='success',? 'msg'='操作成功!' ]; //class Json extends Response
return json($data);
$data = [? 'result'='success',? 'msg'='操作成功!' ];
return json_encode($data);
create databases handle;
create table user(
id int unsigned not null auto_increment primary key,
sex tinyint(1) default '1',
score int not null,
state tinyint(1)
);
Index.html:
!DOCTYPE html
html lang="en"
head
/head
body
button onclick="send('a.php?state=0')"开始请求/button
script type="text/javascript"
//创建一个模态框
$('span').html(value);
}
//ajax
function send(dizhi){
$.ajax({
type: "get",
url: dizhi,
success: function(msg){
var arr=JSON.parse(msg);
console.log(arr);
//alert(arr.value);
var tishi="已经处理 "+arr.now +"个,共"+arr.all+"个";
if(arr.now!=arr.all){
send("a.php?now="+arr.now+"all="+arr.all);
}else{
alert("完成!");
});
/script
/body
/html
a.php:
php
require('./dbconfig.php');
$link=mysql_connect(HOST,USER,PASS) or die('数据库链接失败');
mysql_select_db(DBNAME);
/*
查询数据
$sql="select * from user";
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);
var_dump($row);
*/
循环插入
$sql= "insert into user(name,score,state) values('z".$i."',".$i.",1)";
mysql_query($sql);
/*查询需要处理的数据总数*/
//isset($_GET['state'])?$_GET['state']:0;
if(isset($_GET['state'])){
$sql="select count(*) from user";
$all=mysql_result($result,0);
$now=0;
header("Location: b.php?all={$all}now=0");
header("Location: b.php?all={$_GET['all']}now={$_GET['now']}");
/*返回当前处理的数据*/
b.php:
//$id=$_GET['id'];//获取将要处理的id
$now=$_GET['now'];//已经处理的个数
$all=$_GET['all'];//总共要处理的个数
$sql="select score from user limit {$now},1";
$value=mysql_result($result, 0);
$now++;
$arr=array(
'now'=$now,
'all'=$all,
'value'=$value
//print_r($arr);
echo json_encode($arr);
dbconfig.php:
define('USER', 'root');
define('PASS','root');
define('DBNAME','handle');
你大概要先搞清楚 页面(前端) 和 PHP(后端) 的关系;
第一个页面 由 A.php完成, 提交后 输入的内容 交给B.php 由B.php 生成第二个页面.
这个时候 A.php已经不起作用了. A.PHP 提交的内容在服务器端的 全局变量$_POST['name']里面(name 就是A.PHP中TEXTAREA 标签的name 属性值).
注意 : 第一个页面不存在了,要想显示第一个页面的内容,就在B.php.中把第一个页面复制一遍.把重新建立一个textarea 标签 默认值是你要显示的值,
这个可以通过PHP的curl请求来提交数据到其他的网站!获取执行的结果即可!以下是一个示例.
function curlpost($data,$url){ //curlpost提交函数
$data=array('data'=$data);
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_POST, true );
curl_setopt ($ch, CURLOPT_HEADER, 0 );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data );
$state=curl_exec ($ch );
curl_close ($ch );
return $state;
可以通过两种方案:
第二,通过Ajax来传值,Ajax把表单数据提交给php,php处理完表单数据返回给Ajax一个状态值,这样表单页面是不会刷新,表单原数据还是会存在.
以上就是土嘎嘎小编为大家整理的经过php处理返回数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!