Восстановить данные из JQuery.post () - PullRequest
0 голосов
/ 16 октября 2019

Я использую $.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);

1-й console.log в js показывает мне значения 3 переменных, но console.log в обратном вызове показывает мне undefined. Но я вижу в сети отладчик:

Form Data
id: xxxx
notes: xxxx

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Вы можете попробовать таким способом.

JQuery CODE

$('#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) {
                var data=$.parseJSON(data);
                    console.log('Data Id : ',data.id);
                    console.log('Data Name : ',data.notes);
                })
                .then(r =>{
                   //location.replace('../buckets/update_note.buckets.php');
            })
         }

PHP CODE

  echo json_encode($_POST);
0 голосов
/ 16 октября 2019

Полагаю, в вашем случае данные будут текстовыми. Вам нужно использовать json_encode() в вашем php для печати сложных объектов. Затем в вашем JS вы можете использовать JSON.parse() для восстановления объекта или определить application/json тип контента в вашем запросе POST. Что-то вроде:

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

// js
function (response) {
  const data = JSON.parse(response);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...