0

我在使用 jQuery Ajax 函数和 PHP 时遇到了一些问题。

我正在使用以下代码检查 PHPnav中变量中键的存在:$_REQUEST

if ($_REQUEST['nav']) {
    // do something
} else {
    echo 'Please specify NAV.';
}

然而,上面的表达式永远不会计算,因为nav它永远不会传递给它,并且总是输出“请指定 NAV”。

console.log('paramList: ' + paramList);

$.ajax({
    type: 'POST',
    url: '/admin/nav_builder/edit.php?act=save&nav_id=<?php echo $nav_id; ?>',
    data: {'nav':paramList},
    dataType: 'json',
    error: function(xhr, err) {                             
        loadLayout();
        hideLoader();
        hideLoaderPalette();
    },
    success: function(data){
        $('.errorMsg').html(data.html);
        hideLoader();
        hideLoaderPalette();
    }
});

使用 Firefox Firebug 插件,我可以看到paramList它确实有一个值,这是:

参数列表:{"section0":{"elem0":{"nav_palette":"text","nav_name":"fdgfdgdfg","nav_url":""},"elem1":{"nav_palette":"category", "c_id":"226"}}}

我一生都看不到为什么nav没有被传递给提供给 ajax 函数的 URL。

4

2 回答 2

1

如果“nav”参数有值,请先尝试打印。

echo $_REQUEST['nav'];

另一种是您在一个请求中使用了两种方法。

只需尝试以下。

$.ajax({
    type: 'POST',
    url: '/admin/nav_builder/edit.php',
    data: {act:'save', nav_id:'<?php echo $nav_id; ?>', nav:paramList},
    dataType: 'json',
    error: function(xhr, err) {                             
        loadLayout();
        hideLoader();
        hideLoaderPalette();
    },
    success: function(data){
        $('.errorMsg').html(data.html);
        hideLoader();
        hideLoaderPalette();
    }
});
于 2012-05-29T15:03:36.143 回答
0

改用 $_POST。当您发布导航内容时。

于 2012-05-29T14:50:44.163 回答