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();
    }
});

paramListFirefox 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'];

もう 1 つは、1 つのリクエストで 2 つのメソッドを使用したことです。

以下を試してみてください。

$.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 に答える