以下是我的jquery代码:
e_val = [];
e_val = ['enroll','reject'];
$.ajax({
url: 'myurl.php',
type: 'post',
dataType: 'text',
data: {
reason: 'insert',
eval: e_val
},
success: function (suc) {
row.remove();
alert(suc);
}
});
myurl.php:
$reason = $_POST['reason'];
$eval = array();
if($reason == "insert"){
$eval = $_POST['eval'];
echo $eval[1];
}
我得到的提醒是:
n
那是因为n在e_val [0]中的索引值为1。 我能知道为什么我的数组在PHP页面中转换为字符串而且我无法访问数组元素吗? 提前谢谢。
答案 0 :(得分:0)
你可以使用implode()与implode()函数返回一个数组元素的字符串。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<script>
var e_val = [];
var e_val = ['enroll','reject'];
console.log(e_val);
$.ajax({
url: 'test2.php',
type: 'post',
dataType: 'text',
data: {
reason: 'insert',
eval: e_val
},
success: function (suc) {
alert(suc);
}
});
// alert("dddd");
</script>
</body>
</html>
test2.php
<?php
$reason = $_POST['reason'];
$eval = array();
if($reason == "insert"){
$eval = $_POST['eval'];
echo implode(', ', $eval );
// echo "Dddd";
}
// echo "Dddd";
?>
答案 1 :(得分:0)
使用dataType作为json而不是文本。您可能还想添加标题:{'Content-Type':'application / json'}。此外,eval是JAVASCRIPT中的关键字,避免使用它。 像,
$.ajax({
url: 'myurl.php',
type: 'post',
dataType: 'json',
headers: { 'Content-Type': 'application/json' },
data: {
reason: 'insert',
e_val: e_val
},
success: function (suc) {
row.remove();
alert(suc);
}
});