[英]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.