为了账号安全,请及时绑定邮箱和手机立即绑定

在jQuery的$.post中function(data)返回的数据,请问要怎么取出来用?

在jQuery的$.post中function(data)返回的数据,请问要怎么取出来用?

桃花长相依 2022-05-18 15:15:00
我在JS函数中写:function initialize(cc){$.post("some1.php",{value:cc},function(data){alert(data);});alert(data);}我想把变量cc传到后台用php处理 然后返回两个数组但是我想把这两个数组在js function initialize中分别使用 该怎么做呢像上面那个程序 function(data)里的alert(data)就能显示 而外面的alert(data)就不行 而且我还想把这两个数组分别赋给两个变量 求前辈指点啊
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你把你的数组返回值中间用个符号分割,比如分号["a1","b1"];["a2"',"b2"],然后用split{";"}进行分割就可以分开使用了。
var t = "['a1','b1'];['a2'','b2']";
var ts = t.split(";");
alert(ts[0]);
alert(ts[1]);

下面这个写法写错了
function initialize(cc) {
var html;
$.post("some1.php",{value:cc},function(data){var html=data;},"json");
alert(html);
}
不应该在function(data)里面申明var html,否则html会变成这个方法的体局部变量。你应该改成。
function initialize(cc) {
var html;
$.post("some1.php",{value:cc},function(data){html=data;},"json");
alert(html);
}
但是即便这样改了,alert(html)仍然是空。
你还没有搞清楚ajax的逻辑。ajax是异步的。function(data)里的内容是延迟执行,在你最后alert(html)的时候,function(data)还没有执行,所以alert(html)永远是空。



查看完整回答
反对 回复 2022-05-23
?
jeck猫

TA贡献1909条经验 获得超7个赞

function initialize(cc) {
var html;
//加上这句
$.ajaxSettings.async=false;
$.post("some1.php",{value:cc},function(data){var html=data;},"json");
alert(html);
}

查看完整回答
反对 回复 2022-05-23
?
白衣非少年

TA贡献1155条经验 获得超0个赞

你在函数外面定义一个变量,然后在function里面把data赋值给这个变量不就OK了么

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信