2016-09-14 37 views
-1

我送一個數組我在JavaScript中使用到PHP:得到一個數組從PHP回阿賈克斯POST之後

usernames = ['username1','username2'] 


$.ajax({ 
      url: "my_Url", 
      type: "post", 
      data: {username:usernames} , 
      success: function (response) { 
       // you will get response from your php page (what you echo or print)  
       alert(response); 
      } 
     }); 

數據將被髮送到包含下面的是PHP腳本:

<?php 
header('Access-Control-Allow-Origin: *'); 
$usernames = $_POST['username']; 
echo $usernames; 
?> 

問題是我得到一個警告說數組,但不是什麼在實際的數組本身。如何獲得數組內部的內容並將其重新放入變量中。

+0

你要什麼用數組做? –

回答

0

因爲數據類型是一個數組,所以javascript會從回顯的PHP中提示。通常,可以在陣列轉換爲字符串,它可以在Ajax響應被可視化,使用json_encode()

echo json_encode($usernames); 

,然後處理JSON上前端,使用JSON.parse()。作爲一個用戶已指出的那樣,它呼應JSON之前設置一個內容首部是在後端腳本有用:

header('Content-Type: application/json'); 

這種方法更詳細地討論here

另一種可能性,即是數字數組非常有用,例如在你的代碼,是簡單地呼應了內爆陣,將其轉換爲字符串:

echo implode(",", $usernames); // the ajax response will be username1,username2 here 
+1

您可能想要添加設置'header('Content-type:application/json');''將幫助jquery自動處理返回的數據到javascript可以直接使用的東西。 – SuperJer

+0

@SuperJer是否需要添加'dataType:'json''給你的AJAX調用? –

+0

@SuperJer,這不是必要的,但會編輯答案,以包含您的建議基於另一篇文章 –