2014-08-29 31 views
0

我使用jQuery來調用一個PHP函數並返回一個數組。這裏是php代碼:如何從PHP中生成的數組中獲取長度的JavaScript?

$users = array(); 
    $user = array(); 

    $user["fname"] = "Juan"; 
    $user["lname"] = "Perez"; 
    $user["uname"] = "jperez"; 
    $user["passwd"] = "passwd1234"; 
    $user["rights"] = array(
    "mod_own" => true, 
    "view_all" => false, 
    "mod_all" => true, 
    "mod_proj" => false, 
    "mod_users" => true 
); 

    $users[1] = $user; 

    $user["fname"] = "Pedro"; 
    $user["lname"] = "Rodriquez"; 
    $user["uname"] = "pedror"; 
    $user["passwd"] = "passwd456+"; 
    $user["rights"] = array(
    "mod_own" => false, 
    "view_all" => true, 
    "mod_all" => false, 
    "mod_proj" => true, 
    "mod_users" => false 
); 

    $users[1] = $user; 
    $ret["users"] = $users; 
    $ret["error"] = ""; 

    echo json_encode($ret); 

這只是我真正想要返回的測試代碼。事情是,我知道用戶在這裏的長度爲2,但在真正的應用程序中,我不會知道這一點。我想檢查它的長度。在調用此函數的JavaScript中,返回對象是調用obj。如果我說

obj.users [1] [ 'FNAME']

我得到了正確的名稱和一切。我不知道該怎麼做的是檢查用戶的長度。我試過obj.users.length但它不起作用。

我該如何檢查?

編輯:

要看到我用這個代碼長度:

document.getElementById("debug").innerHTML="N de users is " + obj.users.length; 

我拿到 「N代的用戶是不確定的」

+0

「它不工作」:它是否提供錯誤,因爲這應該起作用? – Andy 2014-08-29 11:29:21

+1

'obj.users.length'應該可以工作。請顯示console.log(obj);'在控制檯中顯示 – Steve 2014-08-29 11:29:33

+0

我很新。我用一個文本編輯器編寫我的代碼並在網頁上試用。我如何檢查控制檯輸出?至於爲什麼它不起作用,這是因爲當我嘗試打印它的值時,打印的值是未定義的。我將編輯該問題。 – aarelovich 2014-08-29 11:33:56

回答

0

你設置$users[1]兩次沒有設置$users[0]。這將輸出一個Object,它沒有length屬性。不要直接指定索引,只需將您的內容推送到$users$users[] = $user

+0

我不知道你的語法添加用戶(我曾經使用array_push($用戶,$用戶);我再次使用它),但這解決了它!非常感謝你。現在obj.users.length工作! – aarelovich 2014-08-29 11:38:53

+0

我的語法是首選,因爲它不會調用函數的開銷。有關更多信息,請參見['array_push'](http://php.net/manual/en/function.array-push.php)。 – 2014-08-29 11:39:50

+0

相關知識!!! – aarelovich 2014-08-29 11:40:20

相關問題