Javascript PHP-向服务器发送查询的简单ajax

Javascript PHP-向服务器发送查询的简单ajax,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,请原谅我的无知,但我不知道如何在PHP中执行简单的ajax请求。我理解用其他语言/库进行客户机-服务器通信的原理,但由于某些原因,PHP无法实现 以下是我想做的: 使用jQuery从这里发送请求: $(document).on('click', '#uploadAll', function() { $.ajax({ url: '/ExamplePhpFile.php', type: "POST", data: {query:'INSERT

请原谅我的无知,但我不知道如何在PHP中执行简单的ajax请求。我理解用其他语言/库进行客户机-服务器通信的原理,但由于某些原因,PHP无法实现

以下是我想做的:

使用jQuery从这里发送请求:

$(document).on('click', '#uploadAll', function() {
    $.ajax({
        url: '/ExamplePhpFile.php',
        type: "POST",
        data: {query:'INSERT INTO Assets SELECT * FROM Uploads'},
        success: function(respose){
            console.log("POST successful");
        }
    });
});
if(isset($_POST{'data'})) {
    $query = $_POST['data'];
    foreach($query as $value) {
        echo 'here is your crap: '.$value;
    }
}
在此处获取数据属性中的查询字符串:

$(document).on('click', '#uploadAll', function() {
    $.ajax({
        url: '/ExamplePhpFile.php',
        type: "POST",
        data: {query:'INSERT INTO Assets SELECT * FROM Uploads'},
        success: function(respose){
            console.log("POST successful");
        }
    });
});
if(isset($_POST{'data'})) {
    $query = $_POST['data'];
    foreach($query as $value) {
        echo 'here is your crap: '.$value;
    }
}
然后,我将在另一个函数中使用传递的查询在服务器上运行操作(这部分工作)。显然我有点问题,因为$\u POST['data']位没有返回值。而监视$\u POST本身只会给我一个数组对象(JSON\u encode()也不能做到这一点)


有谁能给我指点路,帮我留点头发吗?:)

您将数据键作为
query
传递,并使用
$\u POST['data']
因此它将如何工作替换为
$\u POST['data']
将如何工作替换为
$\u POST['query']
您将数据键作为
query
传递,并使用
$\u POST['data']
因此它将如何工作替换为
$\u POST['data']
$\u POST['query']
它会起作用。

您需要发送一个有效的JSON对象回来

if(isset($_POST['query'])) {
    $query = $_POST['query'];
    $data = [];
    $x = 0;
    foreach($query as $value) {
        $data[$x] = 'here is your crap: '.$value;
        $x++;
    }
    print(json_encode($data));
}

您需要返回一个有效的JSON对象

if(isset($_POST['query'])) {
    $query = $_POST['query'];
    $data = [];
    $x = 0;
    foreach($query as $value) {
        $data[$x] = 'here is your crap: '.$value;
        $x++;
    }
    print(json_encode($data));
}


另外,跨web请求发送SQL语句是一个非常糟糕的安全漏洞。我在帖子中忘记了它们,它们在文件中。我将进行编辑以反映:)而且您的参数将不会将
数据
作为键。它将以
查询
作为键。
$\u post['query']
证明您实际上可以使用
{}
isset($post{'data})中所示
…哈哈,谁知道呢。@ArtisticPhoenix正如我刚才指出的,
数据将不会是
$\u POST
关联数组中的键,因此跨web请求发送SQL语句是一个非常糟糕的安全漏洞。我在帖子中忘记了它们,它们在文件中。我将进行编辑以反映:)而且您的参数也不会有
data
作为一个键。它将
query
作为一个键。
$\u POST['query']
结果表明,您实际上可以像
isset($POST{'data'})一样使用
{}
…哈哈,谁知道呢。@ArtisticPhoenix正如我刚才指出的,
数据将不会是
$\u POST
关联数组中的一个键,我尝试过,当我回显它时,我什么也没有得到:(Show us var\u dump($\u POST)outputits empty?这会混淆回显
文件\u get\u内容('php://input')
查看原始HTTP请求正文是什么。其中可能有一些线索。这也是空的,客户端似乎有问题?嗯,我试过了,当我回显它时,我什么也没有得到:(Show us var_dump($_POST)outputits empty?这会混淆回显
file\u get\u contents($)php://input')
查看原始HTTP请求主体是什么。其中可能有一些线索。这也是空的,客户端似乎有问题?你认为这有什么区别吗?他清楚地说他没有得到响应,因为他没有返回有效的JSON对象。可能要先阅读实际问题和响应或者否决所有人?只是一个想法,他也清楚地说他的查询是有效的,这是对他没有得到的AJAX调用的响应。你认为它没有解决问题的哪一部分?他想知道当AJAX调用完成时,如何从服务器得到响应。现在我知道你在做什么了。对不起,漫长的一天。你觉得有什么不同你认为这有什么意义?他清楚地说他没有得到回应,因为他没有返回一个有效的JSON对象。也许在投票否决所有人之前阅读实际的问题和回应?只是一个想法。他也清楚地说他的查询有效,这是对他没有得到的AJAX调用的回应。你认为这不是问题的哪一部分他想知道在AJAX调用完成后如何从服务器上获得响应。现在我知道你要做什么了。对不起,漫长的一天。