我正在开发一个类似的情况的Web应用程序 “当用户点击标记为收藏夹按钮时,jquery选择该用户的ID(即标记为收藏夹)”并调用ajax。现在我想创建一个存储所有这些id的数组,然后我将这个数组存储到wordpress user_meta_field中。但问题是每次ajax创建一个新数组并且不将id存储在同一个数组中。这是我的代码
jQuery(function(){
jQuery('.fav-<?php echo $myID; ?>').click(function(){
var user_IDs = jQuery(this).attr('id');
var current_IDs = <?php echo $cui ?>;
jQuery.ajax({
url: '<?php bloginfo('url') ?>/',
type: 'POST',
data: 'ajaxreturn=101&id='+user_IDs+'&myid='+current_IDs,
success: function(result){
jQuery('.testres').html(result);
}
});//ajax ends here
});
});
这是代码在functions.php中生成响应
add_action('init','my_ajaxreturn_101');
function my_ajaxreturn_101(){
$reminders = array();
if($_POST['ajaxreturn']==101){
$userID = $_POST['id'];
$loggedID = $_POST['myid'];
array_push($reminders,json_decode(get_user_meta($loggedID, 'meta_favorite', true), true));
array_unique($reminders);
if(in_array($_POST['id'],$reminders)) {
echo "Failed: Auction already in list";
} else {
array_push($reminders,intval($_POST['id']));
if(update_user_meta( $loggedID, 'meta_favorite', json_encode($reminders) )) {
echo "Success";
}
}
print_r($reminders);
exit;
}
}
,这是第一次点击的输出
SuccessArray ( [0] => [1] => 39 )
这是第二次点击的输出
SuccessArray ( [0] => Array ( [0] => [1] => 39 ) [1] => 34 )
,这是第三次点击的输出
SuccessArray ( [0] => Array ( [0] => Array ( [0] => [1] => 39 ) [1] => 34 ) [1] => 33 )
答案 0 :(得分:0)
将您的代码更改为
array_push($_SESSION['reminders'],json_decode(get_user_meta($loggedID, 'meta_favorite', true), true));
array_unique($_SESSION['reminders']);
您可以像
一样打印数组print_r($_SESSION['reminders']);
注意:在进入会话之前,您必须为用户启动会话
更改这些行:
...
} else {
array_push($_SESSION['reminders'],intval($_POST['id']));
if(update_user_meta( $loggedID, 'meta_favorite', json_encode($reminders) )) {
echo "Success";
}
}
...