0

我正在使用 ajax php 我有一个问题,即

我在 ajax 请求中传递一个 javascript 列表

data: "user_names="+ user_names ; 

我在 php 页面上得到这个列表,比如

$participants_names = $_GET['user_names'];

我正在尝试迭代该列表,例如

   for ($i = 0; $i <= $participants_names; $i++) {
      print $i;
   }

但我没有得到结果,实际上我来自 python 并且第一次接触到这个,php 所以请帮助我找出我出轨的地方。

4

5 回答 5

1

$_GET['user_names']是一个字符串。您可以使用explode 或split php 函数使其成为一个数组。

Ifuser_names是以逗号分隔的名称列表:

$participants_names = explode( ',', $_GET['user_names']);
于 2012-08-07T13:43:57.160 回答
1

我认为您不能简单地将列表作为参数传递,您应该将其序列化。我建议您使用大多数浏览器都支持的 JSON。

在 JS 中将此作为参数传递

"user_names="+JSON.stringify(user_names);

在 PHP 中使用这个

$participants_names = json_decode($_GET['user_names']);
于 2012-08-07T13:46:47.310 回答
0

做一个...

var_dump($participants_names);

......以及它所拥有的东西。我猜它类似于逗号分隔的列表?

$list = explode(',', $participants_names); // Create an array named $list
for($i = 0; $i <= count($list); $i++) {
    echo $i;
}
于 2012-08-07T13:46:07.513 回答
0
var usernames = ["A", "B", "C"]
data: "user_names="+ user_names.join(",") ; 
$participants_names = explode(",", $_GET['user_names']);
于 2012-08-07T13:46:43.913 回答
0

尝试(假设您的用户名用分号分隔)

$arrayUsers = explode(";", $_GET['user_names']);  
foreach($arrayUsers as $user){
   echo $user;
}
于 2012-08-07T13:48:11.677 回答