我创建了一个会话数组,将在整个站点中为每个用户使用。一旦用户更改设置,会话数组的设置也会随之更改。
我在加载页面时创建了一个会话数组:
if (!isset($_SESSION['controller']))
{
$_SESSION['controller'] = array(
'color' => array(
'shell' => 'none',
'graphic-color' => 'none',
'part-color' => 'none'
),
'graphics' => array (
'text' => 'none',
'text-font' => 'none',
'text-style' => 'none',
'graphic' => 'none',
'part' => 'none'
)
);
}
一旦用户更改设置,使用 ajax 调用,我会调用 .php 文件来修改应该更改的任何关联设置:
JS:
function changeSetting(what, to)
{
$.ajax({
url: "../wp-content/themes/twentytwelve/controller/php/controllerArrayMody.php",
type: "POST",
data: {
'what' : what,
'to' :to
},
success: function() {
}
});
}
what
将包含 'shell' 或 'graphic-color' 等......to
将包含它应该是的值,所以none
会改变。
现在从他们这里是我修改它的代码:
$changeWhat = $_POST['what'];
$to = $_POST['to'];
$newArray = $_SESSION['controller'];
$key = array_search($changeWhat , $_SESSION['controller']); // returns the first key whose value is changeWhat
$newArray[$key][0] = $to; // replace
$_SESSION['controller'] = $newArray;
这是输出:
Array ( [color] => Array ( [shell] => none [graphic-color] => none [part-color]
=> none ) [graphics] => Array ( [text] => none [text-font] => none [graphic] =>
none [part] => none ) [0] => Array ( [0] => Red-Metallic.png ) )
我的问题是,我做错了什么,它添加到数组的末尾而不是替换,让我们说 [shell] 到to
可以说的值是Img.test.png