實際上,我發送的數組包含多個數組到PHP與ajax驗證{登錄或註銷}。ajax POST數組與多個電子郵件到PHP進行驗證,但驗證/ PHP函數不工作
HTML/JQ:
var arr = ['[email protected]','[email protected]','[email protected]',[email protected]' ....];
$.ajax({
url: "verify.php?action=email",
type: "post",
data: "email="+arr,
dataType: "json",
cache: false,
success: function(response){
alert(response.status);
},
error: function(jqXHR,textStatus,errorThrown){
alert(textStatus);
}
});
PHP:
define('INCLUDE_CHECK',true);
include('functions.php');
header('Content-Type: application/json');
$data = array();
switch($_GET['action']) {
case 'email':
$items[] = explode(',', $_POST['email']);
foreach($items as $key){
$n[] = getStatus($key); // getStatus function is defined in "functions.php"
}
$data['status'] = $n;
break;
}
echo json_encode($data);
現在的問題是:它空返回每一次,而不是 「在線」 或 「離線」。但如果我只通過一封電子郵件,效果很好。像:
$n = getStatus('[email protected]');
$data['status'] = $n;
任何溶液....
thnks &問候
UPDATE:
其作品時陣列手動操縱:
$items = array('[email protected]','[email protected]'....);
foreach($items as $key){
$n = getStatus($key);
$data['status'] = $n;
}
和for loop
在ajax success
函數中。
,但我想通過從jQuery的數組到PHP
UPDATE:ANSWER
$items = explode(',', $_POST['email']);
foreach($items as $key){
$data['status'][] = getStatus($key);
}
與JQ:
success: function(response){
for(var i in response.status){
alert(response.status[i]);
}
},
感謝&問候
我的函數foo返回null,爲什麼?..爲什麼要隱藏你的'getStatus'實現? –
首先是'$ n []'得到一個數組或一個值,因爲如果它有一個值,它將在循環的每次迭代中被覆蓋。其次,你確定你不需要在瀏覽器端使用JSON.stringify,而在服務器端使用json_decoded來傳遞json字符串? – Sebastien
@vp:'getStatus'應該返回「在線」或「離線」。並且我沒有;這個代碼,bcz這不是必需的 –