1

有人能告诉我为什么这个请求不执行成功代码吗?

$(document).ready(function(){
        var post_data = [];
        $('.trade_window').load('signals.php?action=init'); 
        setInterval(function(){
            post_data = [   {market_number:1, name:$('.trade_window .market_name_1').text().trim()},
                    {market_number:2, name:$('.trade_window .market_name_2').text().trim()}];

                    console.log(JSON.stringify({markets: post_data}));

            $.ajax({
                        url: 'signals.php',
                        type: 'POST',
                        contentType: 'application/json; charset=utf-8',
                       data:{markets:post_data},
                        dataType: "json",
                        success: function(){
                            console.log("IT WORKED");
                        },
                        failure: function(result){
                            console.log("FAILED");
                            console.log(result);
                        }
            });
        }, 10000); 
    });

当我检查的输出console.log(JSON.stringify({markets: post_data}));是在谷歌浏览器中得到这个结果时:

{"markets":[{"market_number":1,"name":"GBPUSD"},{"market_number":2,"name":"EURUSD"}]}

但是我从来没有在控制台上打印出“它可以工作”,这意味着它永远不会工作。

在进一步检查时,我在我的 php 中做了一个 if 语句,它检查是否有任何内容被发布

if(!empty($_POST))
        echo "POSTED!!!!!";
    else
        echo "NOT POSTED";

但我总是在屏幕上打印“未发布”。

有任何想法吗?

谢谢您的帮助。

4

3 回答 3

3

使用此代码:

$(document).ready(function(){
    var post_data = [];
    $('.trade_window').load('signals.php?action=init'); 
    setInterval(function(){
        post_data = [   {market_number:1, name:$('.trade_window .market_name_1').text().trim()},
                {market_number:2, name:$('.trade_window .market_name_2').text().trim()}];

                console.log(JSON.stringify({markets: post_data}));

        $.ajax({
                    url: 'signals.php/',
                    type: 'POST',
                    contentType: 'application/json; charset=utf-8',
                   data:{markets:post_data},
                    dataType: "json",
                    success: function(){
                        console.log("IT WORKED");
                    },
                    failure: function(result){
                        console.log("FAILED");
                        console.log(result);
                    }
        });
    }, 10000); 
});
于 2013-05-09T10:40:13.520 回答
1

您可以轻松地在请求中传递POST数据,而无需.ajaxJSON.stringify

$(document).ready(function(){
        var post_data = [];
        $('.trade_window').load('signals.php?action=init'); 
        setInterval(function(){
            post_data = '&market_number1=1&name1='+$(".trade_window .market_name_1").text().trim()+'&market_number2=2&name2='+$(".trade_window .market_name_2").text().trim();

            $.ajax({


                        url: 'signals.php',
                        type: 'POST',
                        data: post_data,
                        dataType: "json",
                        success: function(){
                            console.log("IT WORKED");
                        }
            });
        }, 2000); 
    });
于 2013-05-09T09:53:58.717 回答
1

如果您想使用 json.stringyfy 并在 php 端读取数据.. 这是正确的方法

数据:{json: JSON.stringify({markets: post_data})}

$(document).ready(function(){
    var post_data = [];
    //$('.trade_window').load('signals.php?action=init'); 
    setInterval(function(){
        post_data = [   {market_number:1, name:$('.trade_window .market_name_1').text().trim()},
                {market_number:2, name:$('.trade_window .market_name_2').text().trim()},];

                console.log(JSON.stringify({markets: post_data}));

        $.ajax({


                    url: 'signals.php',
                    type: 'POST',
                    data: {json: JSON.stringify({markets: post_data})},
                    dataType: "json",
                    done: function($msg){
                        console.log("IT WORKED");
                    }
        });
    }, 2000); 
});

现在在你的 PHP 中你可以做任何事情

$json = json_decode($_POST["json"]);
print_r($json);

或者

    if(isset($_POST["json"])){
$json = json_decode($_POST["json"]);
if(!empty($json))
        echo "POSTED!!!!!";
    else
        echo "NOT POSTED";
}

DIN

于 2013-05-09T09:59:15.873 回答