我正在尝试将数组从控制器传递给我的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。
答案 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();
}
});
}
希望这会对您有所帮助。