我的 js 脚本中有以下内容:
cats = []; cats.push(cat1); cats.push(cat2);
$.post( URL+"/edit-article.php", { id: artId, title: "PZujF0 wxKLCW", content: "ILEn3o oU9Ft6oU5", author: author, cat_id: cats } ).done(function( data2 ) {......}
cat1 和 cat2 是一些随机生成的整数,所以我向我的 php 脚本发送一个整数数组。我如何在我的 php 脚本中检索它们?目前我有这样的东西:
$cat_id=array();
$cat_id=array_map('intval',explode(',',$_POST['cat_id']));
但我的代码假设从 js 发送的数组相当于以下内容:
<form action='edit-article.php' method='post'>
<input type='hidden' name='cat_id' value='1,2'>
</form>
从我在 js 中发布的代码来看,很明显只有 2 个整数,所以我可能会做出类似的东西:
$cat_id=$_POST['cat_id'];
$id1=(int)$cat_id[0];
$id2=(int)$cat_id[1];
但是我如何正确解析 PHP 中的数组以获取任意数量的元素,并确保留下一个整数数组?
LE:我遇到的问题是理解 JS 如何将数据发送到我的 php 脚本,以便正确提取数据。据我所知, $POST 值总是作为字符串检索(对于从 JS 发送的值有效还是只是表单和其他内容?),但是我的 cat_id 数组是像 {'1','2','3 这样的字符串数组吗? '} 还是像 '1,2,3' 这样的字符串?
最佳答案
当前您正在发送一个数组,因此无需爆炸:
$cat_id = array_map('intval', $_POST['cat_id']);
或者,您可以在 JavaScript 端创建逗号分隔列表:
cats = cats.join();
关于Javascript 数组到 php 的 post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730344/