如何在php中获取对象的值

时间:2014-06-01 18:55:19

标签: javascript php arrays object

我有一个javascript正在收集这样的数据:

var chk = [];
$("input[name=row_sel]:checked").each(function() {
    chk.push ({
            "value": $(this).attr('id'),
            "type" : $(this).data('typo')
    });                 
});// JavaScript Document

chk数组正在通过ajax发送到php脚本中 我该如何解释那个数组?

我试过这样做:

$chk = $_REQUEST['chk'];
foreach ($chk as $info) {
}

发送数组的ajax是:

$.ajax({
    url: 'view/debts/debts_validation.php',
    type: 'post',
    dataType: 'json',
    data: { 'chk[]' : chk },
    beforeSend: function() {
        $("#dt_debts_processing").css("visibility","visible");
    },  
    complete: function() {
        $("#dt_debts_processing").css("visibility","hidden");
        $("#dt_debts_processing").html('Checking compatibility...');
    },                                  
    success: function(json) {
        if (json['status']) {
            location = '?route=home/debts/insert';
            cForm.hide().append('body').submit();
            return false;
        } else {
            $.sticky("Current selection is not available for multiple edit.", {autoclose : 5000, position: "top-right", type: "st-error" });
        }
    }                           
}); 

3 个答案:

答案 0 :(得分:2)

我认为您正在尝试通过ajax发送JavaScript对象。

你不能这样做。您需要使用JSON.stringify()函数序列化对象。

然后,您可以使用json_decode()函数重新编译此字符串。

我希望有所帮助。

<强> PS:

不要使用$_REQUEST变量访问Request-Data。使用$_GET$_POST

答案 1 :(得分:1)

此?

data: { 'chk[]' : chk },

你可以完美地发送它:

data: { chk : chk },

并通过以下方式访问数组:

$chk = $_POST['chk'];
foreach ($chk as $info) {
    echo "value: ".$info["value"];
    echo "type: ".$info["type"];
}

答案 2 :(得分:0)

就这样做:

$chk = $_REQUEST['chk'];
    foreach ($chk as $info) {
        echo $info;
    }