尝试将数组作为数组传递给ajax

时间:2018-09-28 02:56:54

标签: php arrays ajax

我正在尝试将数组从控制器传递给我的ajax结果,然后使用结果确定是否应显示某些div。下面是我的PHP控制器。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@null" >

      <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top|center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="@string/hello_world"
            android:src="@drawable/loading_top" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:adjustViewBounds="true"
            android:contentDescription="@string/hello_world"
            android:src="@drawable/loading_bottom" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:contentDescription="@string/hello_world"
            android:background="@color/white"
            android:layout_marginBottom="5dp"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:src="@drawable/loading_logo" />

        <ImageView
            android:id="@+id/loading"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center|center_vertical"
            android:layout_marginBottom="0dp"
            android:layout_marginTop="0dp"
            android:contentDescription="@string/hello_world"
            android:scaleType="fitXY"
            android:src="@null" />
    </FrameLayout>
</LinearLayout>

这是我的ajax

public function actionCheckUser(){
    $user = $this->user;
    $has_name = $user['realname'] != '' ? 'name_tab' : 'none';
    $has_mobile_verified = $user['mobilestatus'] == 1 ? 'mobile_tab' : 'none';

    $check = array($has_name, $has_mobile_verified);
    $data['result'] = $check;
    echo json_encode($data);
}

我无法将其作为数组返回,并且它对我的div也没有任何作用...

我正在尝试使用结果来确定要隐藏和显示哪个div。

1 个答案:

答案 0 :(得分:2)

我想,您处理ajax响应的方式存在一些问题,您不需要拆分数组myarray = array.split(',');,变量array已经是根据控制器逻辑具有两个值的数组,您应该按以下方式更改JavaScript逻辑,

var myarray = new Array();
$.ajax({
    url: "/member/CheckUser",
    type: "POST",
    success: function(data){
        var myarray = $.parseJSON(data);
        initializeTabs(myarray.result);
    },
    error: function (xhr, ajaxOptions, thrownError) {
       //alert(xhr.status);
       alert(thrownError);
    },
    //dataType:"json"
});

function initializeTabs(myarray) {
    $(".tab").each(function(){
        if(jQuery.inArray($(this).attr('id'), myarray) !== -1){
            var id = $(this).attr('id');
            $('#'+id).removeClass('tab');
            $('#'+id).hide();
        }
    });
}

希望这会对您有所帮助。