Javascript 数组到 php 的 post

标签 javascript php arrays

我的 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/

相关文章:

C 比较数组元素与字符串

javascript - Firefox 上的动画方面发生了变化

php - 2checkout测试支付模拟

php - 从 Android 手机上传图片到笔记本电脑需要太长时间,最后上传时显示“Windows 照片查看器无法显示,因为文件为空”

php - 更新网页的特定区域而不重新加载整个页面

arrays - 用于计算百分位数的条件数组

java - 数组、算法和元素

javascript - 拉拉维尔 5.3 : Auto refresh div when data update with Ajax

javascript - 使用 aurelia 即时创建 dom 对象

javascript - HTML 和 JavaScript 变量