繁体   English   中英

php,将ajax传递给变量的值

[英]php, adding ajax passed values to a variable

所以,在js中,你可以在函数外部有一个变量,可以使用push来为它添加值并在其他任何地方访问它。

var names = [];
function my_function_js(){
    alert(names);
}

在php中,变量可以以类似的方式运行吗?

例如,假设我有一个带变量的ajax函数。 然后我想知道我是否可以在多个场合使用ajax为这个变量添加不同的值。

$names   = array();
function my_function(){
   $names[]   = $_POST['names'];
}

让我们说,对于第一个ajax电话, mike通过了。 然后steve为第二个电话和sean最后。

每个值是否会覆盖以前的值,还是像js一样保存?

(换句话说,我想知道我是否可以使用ajax多次调用向php变量添加值)。

谢谢。

编辑:

有人指出,每次进行新的ajax调用时,都会重置ajax变量(在本例中$names )。

然后,如何让另一个变量不受ajax调用的影响,只需将ajax值推送给它?

例如:

$FULL_NAMES   = array();
function my_function(){
   $names  = $_POST['names'];
   $FULL_NAMES[]   = $names;
}

会这样的吗?

可以选择将值存储在$_SESSION数组中。

你需要添加

session_start();

到页面顶部

并使用。

$_SESSION['varname'][] = "whateveryouwant";

如果您只需要当前用户的数组,并且您不需要将数据持久存储在用户会话中。您可以使用会话变量。

$_SESSION['names'][] = $_POST['names'];

像其他用户所说的那样,不要忘记在代码开头的某处添加session_start()

编辑:我用Adam Copley的评论更新了我的答案

是的,您可以按照您的方式或使用push方式向数组添加项目,但请记住,PHP不是持久性的,因此如果您正在讨论ajax调用,那么您在该调用期间添加的值将会存在。

<?php 

$names = array();
$names[] = "Mark";
$names[] = "Franklin";
$names[] = "Sam";

var_dump($names);

输出:

array(3) {
  [0]=>
  string(4) "Mark"
  [1]=>
  string(8) "Franklin"
  [2]=>
  string(3) "Sam"
}

如果你想要持久化,你将不得不将值存储在cookie,db,文件系统,内存缓存(如redis)或其他地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM