我試圖通過jQuery.ajax將JavaScript數組發送到PHP頁面,但數組僅使用空值發送。如何通過jQuery.ajax將JavaScript數組發送到PHP?
如果我在Chrome上打開F12控制檯並檢查JS對象,它就在那裏。全部填滿。但是當我使用ChromePhp工具記錄PHP變量時,它只顯示空白值(另外,如果我遍歷php數組,回顯它的值,我得到所有空白)。
我在這裏深感困惑。
這裏去我的示例代碼:
<?php
include 'ChromePhp.php';
if (isset($_GET['newUsers'])) {
$newUsers = $_GET['newUsers'];
ChromePhp::log($newUsers);
} else { ?>
<html>
<body>
<script src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript">
var newUsers = [];
newUser = [];
newUser['nome'] = 'alvaro';
newUser['idade'] = '34';
newUsers.push(newUser);
newUser1 = [];
newUser1['nome'] = 'bia';
newUser1['idade'] = '7';
newUsers.push(newUser1);
newUser2 = [];
newUser2['nome'] = 'alice';
newUser2['idade'] = '2';
newUsers.push(newUser2);
$.ajax({
url: "testcookie.php",
type: "GET",
data: {
'newUsers[]': newUsers
}
});
</script>
</body>
</html>
<?php } ?>
更新基於第一評論。現在我開始傳遞對象,但不知道如何讀取它的屬性。已經嘗試過$ user ['nome']但沒有結果。
<?php
include 'ChromePhp.php';
if (isset($_POST['newUsers'])) {
$newUsers = $_POST['newUsers'];
foreach ($newUsers as $user) {
# code...
# HOW DO I READ THE nome AND idade VALUES HERE?
}
} else { ?>
<html>
<body>
<script src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript">
//var newUsersObj = {};
var newUsers = [];
newUser = {};
newUser['nome'] = 'alvaro';
newUser['idade'] = '34';
newUsers.push(newUser);
newUser1 = {};
newUser1['nome'] = 'bia';
newUser1['idade'] = '7';
newUsers.push(newUser1);
newUser2 = {};
newUser2['nome'] = 'alice';
newUser2['idade'] = '2';
newUsers.push(newUser2);
$.ajax({
url: "testcookie.php",
type: "POST",
data: {
'newUsers[]': newUsers
},
success: function() {
},
error: function() {
}
});
</script>
</body>
</html>
<?php } ?>
,您是否試圖透過JSON.stringify(newusers使用); ? – Hellgorithm
所有'newUser'對象都應該用'{}'初始化,因爲它們是**不是**數組 – Phil
它的工作原理@Phil!我只需要弄清楚如何閱讀PHP上的JavaScript對象。 :) –