【问题标题】:need to create an array in a php file, and add values to it every time I call that php file through ajax需要在 php 文件中创建一个数组,并在每次通过 ajax 调用该 php 文件时为其添加值
【发布时间】:2013-04-02 17:09:55
【问题描述】:

我需要在一个 php 文件中创建一个数组,并在每次通过 ajax 调用该 php 文件时为其添加值(例如 $array[] = something)

我尝试过使用全局和会话,但不起作用我的文件中有这样的内容:

$_GET['index'] 每次从 javascript (ajax) 代码调用 php 时都会更改。

if(isset($_GET['value']) && isset($_GET['next']) && isset($_GET['actl']) && isset($_GET['index'])){
  $_SESSION['filters'][$_GET['index']]['id_feature'] = $_GET['actl'];
  $_SESSION['filters'][$_GET['index']]['value'] = $_GET['value'];

  print_r($_SESSION['filters']);
}

问题在于重置其值并始终显示添加到数组中的最后一个值。

请原谅我的英语

【问题讨论】:

  • 你打电话给session_start()了吗?
  • 不,我没有,我应该在哪里做,在文件的开头?如果在其他文件中使用该函数会有问题吗?我的意思是,它会重置会话变量?
  • 在开始使用与会话有关的任何内容之前调用它。在文件的开头通常是一个好地方。多次调用session_start 应该没问题,但如果你设计的脚本很好,你就不应该遇到这个问题。
  • 有没有办法在不使用会话的情况下做到这一点?
  • isset 需要多个参数,所以你可以这样做isset($_GET['value'],$_GET['next'],$_GET['actl'],$_GET['index'])

标签: php ajax arrays multidimensional-array


【解决方案1】:

不是答案,只是带有大量代码的注释

这个:

$a = array();
$a[]['id_feature'] = $_GET['actl'];
$a[]['value'] = $_GET['value'];

可能会这样做:

array(
    0 => array(
        "id_feature" => "foo"
    ),
    1 => array(
        "value" => "bar"
    )
)

但是,你可能想得到这个:

array(
    0 => array(
        "id_feature" => "foo",
        "value" => "bar"
    )
)

这样写:

$a = array();
$a[] = array(
    'id_feature' => $_GET['actl'],
    'value' => $_GET['value']
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    相关资源
    最近更新 更多