ajax传递多个值到js页面

legendnan 2014-04-01 03:01:32
ajax代码
$.post(
'index.php?controller=login&action=Login',
{'username':username.value,'password':password.value},
function(data){
if (data=='ok'){
location.href="**.php?controller=**";
}else{
alert(data)
}
}
)

这里的data就是回调过来的值把?但是我现在要回调多个值过来比如有多了一个AAA现在这里要如何比较呢?
php代码

if($myJson["err"]==-1){
echo $myJson["err"];
}else{
echo 'ok';
// $arr = array("$username",'ok');
//echo json_encode($arr);
}

问题出来了 我现在如果写echo ‘ok’ 他就能他就能执行跳转,这样是没问题的,但是我现在想要的结果是,他回调的时候给2个参数,这两个一个都不能少,这里我就不会写了,我按照下面的写法他就会弹出一个["***",'ok']的json字段!这要怎么该呢?
...全文
596 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2014-04-01
  • 打赏
  • 举报
回复
我以为是php的全局变量。。

js的话由于ajax是异步的,要在回调里面使用,要么就要设置为同步的了,要用$.ajax


   function getRst() {
var arr;
$.ajax({ url: 'index.php?controller=login&action=Login',
data: { 'username': username.value, 'password': password.value },
type: 'POST',
async: false, /////////这个是关键
success: function (data) {
arr = data;
}
});
return arr;
}
legendnan 2014-04-01
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
 
               if($myJson["err"]==-1){
                   $arr= '["'.$myJson["err"].'","error"]';
                }else{
                    $arr = array("$username",'ok');
                   $arr= json_encode($arr);////////
                }
echo $arr;
版主没看懂你写的这个 echo一下就行?我在js中调用这个回调的参数,在js中定义个全局变量。我写的
var arr;
function() **{
alert (arr);
}
打印出来是空值
Go 旅城通票 2014-04-01
  • 打赏
  • 举报
回复
 
if($myJson["err"]==-1){
$arr= '["'.$myJson["err"].'","error"]';
}else{
$arr = array("$username",'ok');
$arr= json_encode($arr);////////
}
echo $arr;
legendnan 2014-04-01
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
输出标准json字符串,格式化好你的echo $myJson["err"];这个错误信息,输出json格式的,第一个项存储信息,第二项存储状态
                if($myJson["err"]==-1){
                   echo '["'.$myJson["err"].'","error"]';
                }else{
                    $arr = array("$username",'ok');
                   echo json_encode($arr);
                }
    $.post(
               'index.php?controller=login&action=Login',
               { 'username': username.value, 'password': password.value },
               function (data) {
                   if (data[1] == 'ok') {////////
                       location.href = "**.php?controller=**";
                   } else {
                       alert(data[0])/////////
                   }
               },'json'
        )
版主 值传递过去了 原因是写的不规范! 我现在想把这个$arr定义为全局变量该怎么写呢?
legendnan 2014-04-01
  • 打赏
  • 举报
回复
引用 1 楼 Return_false 的回复:
类似如下
/*------------json.php-----------------*/
<?php
   /* 这边如果写成     $info = array('no1'=>'bsd', 'no2'=>'wuddy', 'no3'=>'xie'); */
   /* 同样要把html文件中必成     var show_info = eval('[' + ret + ']'); 都是返回一个对象 */
    $info = array(array('no1'=>'bsd', 'no2'=>'wuddy', 'no3'=>'xie'));
    $userinfo = json_encode($info);
    echo $userinfo;
?>
接受
if (ajax.readyState == 4 && ajax.status == 200)
        {
        var ret = ajax.responseText;
            var show_info = eval(ret);
            show_check.innerHTML = show_info[0].no1; // bsd
            show_flag.innerHTML = show_info[0].no2; // wuddy
            //alert("responseXML's value: " + info[0].firstChild.data);   
        }
接受那里不懂。ajax.readyState ==4 这个如果用我传过来的参数写该怎么写? ajax.responseText;是什么意思?
Go 旅城通票 2014-04-01
  • 打赏
  • 举报
回复
输出标准json字符串,格式化好你的echo $myJson["err"];这个错误信息,输出json格式的,第一个项存储信息,第二项存储状态
                if($myJson["err"]==-1){
                   echo '["'.$myJson["err"].'","error"]';
                }else{
                    $arr = array("$username",'ok');
                   echo json_encode($arr);
                }
    $.post(
               'index.php?controller=login&action=Login',
               { 'username': username.value, 'password': password.value },
               function (data) {
                   if (data[1] == 'ok') {////////
                       location.href = "**.php?controller=**";
                   } else {
                       alert(data[0])/////////
                   }
               },'json'
        )
  • 打赏
  • 举报
回复
类似如下
/*------------json.php-----------------*/
<?php
   /* 这边如果写成     $info = array('no1'=>'bsd', 'no2'=>'wuddy', 'no3'=>'xie'); */
   /* 同样要把html文件中必成     var show_info = eval('[' + ret + ']'); 都是返回一个对象 */
    $info = array(array('no1'=>'bsd', 'no2'=>'wuddy', 'no3'=>'xie'));
    $userinfo = json_encode($info);
    echo $userinfo;
?>
接受
if (ajax.readyState == 4 && ajax.status == 200)
        {
        var ret = ajax.responseText;
            var show_info = eval(ret);
            show_check.innerHTML = show_info[0].no1; // bsd
            show_flag.innerHTML = show_info[0].no2; // wuddy
            //alert("responseXML's value: " + info[0].firstChild.data);   
        }

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧