从JQuery.post()

时间:2019-10-16 10:44:41

标签: javascript php jquery post

我正在使用$.post()将数据推送到php文件中。但是当我制作$_POST时,var_dump是空的。

JS script

 $('#Notes').on("click", function (e) {
        e.preventDefault();
        let $id = $(document).getUrlParam("varname");
        let $text = $(this).attr('data');
        let $notes = prompt("Modifier la note", $text);
        console.log($text, $id, $notes);


        if ($notes !== null || $notes !== "") {
            $.post(
                '../buckets/update_note.buckets.php',
                {
                    id: $id,
                    notes: $notes,
                },
                function (data) {
                    console.log('Data Id : ',data.id);
                    console.log('Data Name : ',data.name);
                })
                .then(r =>{
                   location.replace('../buckets/update_note.buckets.php');
            })
         }

php文件中

<?php

var_dump($_POST);
var_dump($_GET);

console.log中的第一个js向我展示了3个变量的值,而回调中的console.log向我展示了undefined。但是我在网络调试器中看到了:

Form Data
id: xxxx
notes: xxxx

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我相信,在您的情况下,数据将是文本。您需要在PHP中使用json_encode()来打印复杂的对象。然后,在您的JS中,您可以使用JSON.parse()恢复对象或在application/json查询中定义POST的内容类型。像这样:

// php
$json = json_encode([
  'post' => $_POST,
  'get'  => $_GET
]);

// js
function (response) {
  const data = JSON.parse(response);
}

答案 1 :(得分:0)

您可以通过这种方式尝试。

jQuery代码

Go

PHP代码

go