可以在php文件中获取Ajax发送的变量

It is possible to get the variables sent by Ajax in php file

我的表单在 PHP 文件中定义如下(使用 jquery-2.1.4.min.js):

<form id = "testForm" action="" method="post" >
    First name: <input type="text" name="FirstName" id="FirstName" value="Mickey"><br>
    Last name: <input type="text" name="LastName" id="LastName" value="Mouse"><br>
    <button type = "button" onclick="submit()">Submit Top Test </button>
</form>

单击按钮时将调用以下函数。

function submit(){  
        var firstName = $('#FirstName').val();
        alert("Inside SubmitQuery  "+firstName);// Work fine

        var request = $.ajax({
                url: 'php/<path to php file>/processPost.php',
                type:'POST',
                data:{title:firstName},
                success: function(msg) {  

                     alert(msg);// I can see the var_dumps here

                 }

                });

    }   

processPost.php文件中,我定义了下面两个var_dumps

1) var_dump(isset($_POST['title']));

2) var_dump ($_POST['title']);

我可以看到 alert(msg) window 中打印的值。在开发者工具 window 的 Network 选项卡的 Response 选项卡中也是如此。但我想拥有这些变量 在 processPost.php 文件中可用,这样我就可以使用它来对 Web 服务调用发出 curl 请求。是否可以在 processPost.php 文件中获取这些变量?

我的意思是,你基本上在你的问题中回答了你自己的问题。您拥有此文件的事实:

processPost.php:

<?php
    var_dump( $_POST['title'] );
?>

并且您的 success: function(msg){ alert(msg); } 正确地提醒 "Coder"(或您提交的任何名称)字面意思是变量 $_POST['title'] 可用你的 processPost.php 文件。如果 alert(msg) 什么也没给你,或者给你一个错误,那么你就知道出了问题。

success: function(msg) 意味着,如果成功,从您的 url(在本例中为 processPost.php)获取输出值,并将其提供给您的 javascript作为名为 msg.

的变量

是的,你已经拥有它了。

仔细看看这里发生了什么。您正在向 php 文件发出 Ajax 请求。该文件处理 $_POST 变量并使用 var_dump() 输出它。由于来自 jQuery,响应返回到 jQuery。您已使用 alert() 来显示该消息。

在您的 php 脚本中,您可以使用 $_POST['title'] 创建您的 curl 请求。

请小心清理或验证您的输入,以免创建注入孔。不要直接接受用户输入 运行。