如何从PHP中的JavaScript读取发布网址请求

时间:2019-04-27 12:36:38

标签: javascript php jquery

我有使用html输入的表单。
然后,我添加了这个javascript(jquery)笔画,以读取和收集表单中的所有值或数据。

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

当我

console.log(formData);

输出将显示:

  

calc-ownership = ooo&calc-activity = restaurant&calc-tax = usn&calc-tax-2 = charge&calc-bank = partners&calc-who-payments = client&operations_count = 0&calc-nomenclature = slim&documents_count = 0&calc-who-docs = client&staff_count = 0&calc-more %5B%5D =专利&calc-more%5B%5D = alcohol&period =&price =&price_sber =&rate-name =&email-to =

然后我在jquery中找到了称为post的函数 $.post(path, formData, success, "json"); 要求看起来像: do.php?bank = partners

如您所见,它向我的do.php发出了发布请求。
现在如何读取此查询并处理这些数据?

我在jquery中发现与$.post类似。是$.ajax 完整代码:

$.ajax({ url: path, method: "POST", data: {formData: formData} });

效果很好。
但是我想和$.post

合作

此刻我正在查看自己的网址。它看起来像:https://stackoverflow.com?ask=32321

我需要类似的内容才能使用php从javascript这个网址读取查询

3 个答案:

答案 0 :(得分:1)

好的,我会举例说明,

如果要获取要使用的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>
  

现在,您需要仔细检查表单元素名称。在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';
}
?>

这样可以帮助您完成任务。

答案 1 :(得分:0)

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

将您的Ajax代码更改为:

$.ajax({ 
    url: path, 
    type: "POST", 
    data: formData
});

更改之处:

  1. 我将method: 'POST'更改为正确的属性:type: 'POST',它将使Ajax请求发出POST请求,而不是默认的GET。
  2. data: {formData: formData}更改为data: formData。序列化数据后,无需将其发布为json。

如果您想使用$.post,请使用:

$.post(path, formData);

请注意,上述$.ajax$.post的请求都会发出相同请求。

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

$calcOwnership = $_POST['calc-ownership'];

...获取发布的数据。

我建议您阅读有关所用方法的文档:

答案 2 :(得分:-1)

我可能误解了您的问题,但是在php中,您可以使用$ _POST ['variable_name']从发布中获取值。

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

实际上,这在您的url中不是查询,而是变量。很抱歉,如果不是您要的。