在php中创建一个id的动态数组

时间:2014-03-05 08:31:46

标签: php arrays

我正在开发一个类似的情况的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 )

1 个答案:

答案 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";
    } 
}
...