如何在PHP中从javascript读取post url请求

如何在PHP中从javascript读取post url请求,javascript,php,jquery,Javascript,Php,Jquery,我有html格式的表单输入。 然后我添加了这个javascript(jquery)笔划来读取和收集表单中的所有值或数据 var formData = $("#form").serialize(); 当我 console.log(formData); 输出将显示: 计算所有权=ooo&calc活动=usn&calc-tax-2=charge&calc bank=partners&calc who payments=client&operations\u count=0&calc命名法=slim

我有html格式的表单输入。
然后我添加了这个javascript(jquery)笔划来读取和收集表单中的所有值或数据

var formData = $("#form").serialize();
当我

console.log(formData);
输出将显示:

计算所有权=ooo&calc活动=usn&calc-tax-2=charge&calc bank=partners&calc who payments=client&operations\u count=0&calc命名法=slim&documents\u count=0&calc who docs=client&staff\u count=0&calc more%5B%5D=patent&calc more%5B%5D=Alcohold&period=&price=&price\u sber=&rate name=&email to=

然后我在jquery中找到了一个名为post的函数
$.post(路径、表单数据、成功,“json”)
请求看起来像:
do.php?bank=partners

如您所见,它向my
do.php
发出post请求
现在,我如何读取此查询并处理此数据

我在jquery中找到了类似于
$.post
。它是
$。ajax
完整代码:

$.ajax({ url: path, method: "POST", data: {formData: formData} });
它工作得很好。
但是我想使用
$。post

我现在正在看我的网址。看起来:
https://stackoverflow.com?ask=32321


我需要一些类似的东西来从javascript中读取我的查询,这个url使用php

我可能误解了你的问题,但在php中,你可以使用$\u post['variable\u name']从post中获取值

<?php
  $documents_count = $_POST['documents_count']
?>


事实上,这在你的url中不是一个查询,都是变量。如果不是您所要求的,很抱歉。

当您将表单元素视为查询字符串时,您不是在发出POST请求,而是在发出GET请求

将Ajax代码更改为:

$.ajax({ 
    url: path, 
    type: "POST", 
    data: formData
});
改变了什么:

  • 我已将
    方法:“POST”
    更改为正确的属性:
    键入:“POST”
    ,这将使Ajax请求发出POST请求,而不是默认的GET
  • data:{formData:formData}
    更改为仅
    data:formData
    。当您已经序列化了数据时,无需将其作为json发布
  • 如果您想使用
    $.post
    ,请使用:

    $.post(path, formData);
    
    需要明确的是,上面的
    $.ajax
    $.post
    -请求将发出相同的请求

    现在,在PHP代码中,您可以访问如下值:

    $calcOwnership = $_POST['calc-ownership'];
    
    …以获取发布的数据

    我建议您阅读有关您正在使用的方法的文档:


      • 好的,我会举例说明

        如果要获取url参数值,必须使用

        <script>
        let my_variable='<?php echo $_GET['url_param_name'];?>';
        </script>
        
        
        让我的_变量=“”;
        
        以上内容可获得更多帮助和理解。现在,当我得到您的答案时,您希望将表单数据发送到php进行处理

        这是样本表格

        <form id="my_form" name"my_form" method="POST" onsubmit="return send();">
          First name:<br>
          <input type="text" name="first_name" value="Mickey">
          <br>
          Last name:<br>
          <input type="text" name="last_name" value="Mouse">
          <br><br>
          <input type="submit" value="Submit">
        </form> 
        
        
        名字:

        姓氏:


        要发布上述表单,我将使用javascript函数

        <script>
        function send() {
        
            $.ajax
            ({
                type: 'POST',
                url: './path/your_php_file_where_form_data_processed.php',
                data:$('#my_form').serialize(),
                success: function () {
                   // do what you need to do on succeess
                },
                error: function (x, e) {
                    // for error handling
                    if (x.status == 0) {
                        console.log('You are offline!! -  Please Check Your Network.');
                    } else if (x.status == 404) {
                        console.log('Requested URL not found.');
                    } else if (x.status == 500) {
                        console.log('Internal Server Error.');
                    } else if (e == 'parsererror') {
                        console.log('Error. - Parsing JSON Request failed.');
                    } else if (e == 'timeout') {
                        console.log('Request Time out.');
                    } else {
                        console.log('Unknown Error. - ' + x.responseText);
                    }
                }
            });
            return false;
        }
        </<script>
        
        
        函数send(){
        $.ajax
        ({
        键入:“POST”,
        url:'./path/your_php_file_其中_form_data_processed.php',
        数据:$(“#我的表单”).serialize(),
        成功:函数(){
        //成功时做你需要做的事
        },
        错误:函数(x,e){
        //用于错误处理
        如果(x.status==0){
        console.log('您处于脱机状态!!-请检查您的网络');
        }否则如果(x.status==404){
        log('未找到请求的URL');
        }否则如果(x.status==500){
        log('内部服务器错误');
        }else if(e=='parserrror'){
        log('错误。-解析JSON请求失败');
        }else if(e=='timeout'){
        log('请求超时');
        }否则{
        console.log('未知错误。-'+x.responseText);
        }
        }
        });
        返回false;
        }
        
        你能进一步解释一下吗?如果当前请求基于
        POST
        请求,则表单的数据不会发送回browser@NicoHaase我的意思是它向我的php发出请求,看起来就像php是如何读取这个查询的?让他们工作。例如,写在txt文件中,我已经读了你的问题好几遍了,但我仍然不知道你真正的问题是什么。请在正确的上下文中向我们展示所有相关的代码,而不是在这里或那里向我们展示一行代码。问题是,您不是在发出POST请求,而是在发出GET请求。如果您希望ajax请求是POST,那么它是
        类型:'POST'
        ,而不是
        method=“POST”
        。好的,PHP将查询“读取”到
        $\u GET
        $\u POST
        变量中。您可以随意使用这些,但不要使用jquery OP没有发出POST请求,因此
        $\u POST
        -数组将为空。谢谢您的回答。但是正如我所说的,当我用
        $.ajax({url:path,method:post,data:{formData:formData}})替换我的
        $.post
        时,它就起作用了此案例仅适用于“.ajax”您使用的是$.ajax**我需要**$.post()方面的帮助,但感谢您的帮助,因为我收到了您的问题,您需要使用ajax将数据从前端传递到后端吗?如果需要,请使用此样式。这节省了时间。因为我以这种风格开发大型项目,而且很容易处理。我不需要ajax,我只需要使用$。post@Cengez-
        $.post
        只是
        $.ajax({type:'post'})的一个简短版本
        。请求将是相同的。在我的回答中,我已经发布了一些示例和解释。在我的示例中,这就是为什么我提到使用
        var\u dump($\u POST)之后,您可以了解表单数据并逐个访问。正如您在表单元素名称中定义的。若数据到达后端,那个么你们就可以进行文件读写了。但为什么我的php
        $data=$\u POST['formData']$fp=fopen('log.txt','w+');fwrite($fp,$data)没有写任何东西?@Cengez-请不要移动球门柱。这是您第一次提到在文件中存储任何内容。这个答案回答了您的问题,即如何发出post请求以及如何在PHP中获取发布的数据。如果你
        
        <?php
        //include_once './../../classes/Database.php'; import if you have database configurations
        //session_start(); make sure to use sessions if your site using sessions
        
        if(isset($_POST))
        {
            var_dump($_POST); //this will echo your form inputed data.
            //if you want use one by one posted data
            echo $_POST['first_name'];
            echo $_POST['last_name'];
        }
        else
        {
            echo 'Data not comes here';
        }
        ?>