我正在尝试通过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 } ?>
知道了!
为了正确访问PHP中的JavaScrtipt对象,我需要在对数组进行推送时对其进行JSON.stringify。然后,在PHP上,将其json_decode解码为一个PHP对象,并使用'->'运算符访问其属性。
最终的解决方案如下:
<?php
include 'ChromePhp.php';
if (isset($_POST['newUsers'])) {
$newUsers = $_POST['newUsers'];
foreach ($newUsers as $user) {
# code...
$usr = json_decode($user);
ChromePhp::log("Nome: " . $usr->nome . " - Idade: " . $usr->idade);
}
} 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(JSON.stringify(newUser));
newUser1 = {};
newUser1['nome'] = 'bia';
newUser1['idade'] = '7';
newUsers.push(JSON.stringify(newUser1));
newUser2 = {};
newUser2['nome'] = 'alice';
newUser2['idade'] = '2';
newUsers.push(JSON.stringify(newUser2));
$.ajax({
url: "testcookie.php",
type: "POST",
data: {
'newUsers[]': newUsers
},
success: function () {
},
error: function () {
}
});
</script>
</body>
</html>
<?php } ?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句