javascript переменная json в php - PullRequest
0 голосов
/ 28 июня 2018

Я передаю json в php-файл, но переменные в php остаются пустыми, я уверен, что это небольшая синтаксическая ошибка, но я не могу найти причину этого, любая помощь будет принята с благодарностью.

JAVASCRIPT

if(score >= 100)
{
    console.log("HERE WE GO");
    $.ajax({
        type: "POST",
        url: "FAKENAME.php",
        data: { "data": "{ \"id\": " + id + ", \"quiz\": \"" + getDateTime() + "\"}" },

    }).done(function (data) {
        console.log(JSON.stringify(data) + "This is the data on .done");
        //alert( data );
    })
    .fail(function () {
        console.log("error");
        //alert( "error" );
    })
    .always(function (data) {
        console.log("finished");
        console.log(JSON.stringify(data));
        //alert( "finished" );
    });
}

PHP

$data = json_decode($_POST['data']);
$sql = $conn->prepare("SELECT * FROM FAKEDATABASETABLENAME WHERE id = :id");//no error
$sql->bindParam(':id', $data->id);
//$sql->bindParam(':quiz', $data->quiz);
$sql->execute(); //syntax error

if(!empty($data->id))
{
    $qry = $conn->prepare("UPDATE FAKEDATABASETABLENAME SET Quiz = '2018-06-27 14:44:49' WHERE id = 000007"); //no error and result
    $qry->bindParam(':id', $data->id);
    $qry->bindParam(':quiz', $data->quiz);
    $qry->execute();
}
else
{
    $mailto = "FAKEEMAIL.com" ; //Recipent of the email
    $from = "From: PHP_DEBUG";
    $subject = "PHP_DEBUG";
    $data = json_decode($_POST['data']);
    $content = "id is: " . $data->id. " plaese note.   quiz is: " . $data->quiz. " please note.";
    mail($mailto, $subject, $content, $from);

}

Ответы [ 2 ]

0 голосов
/ 28 июня 2018
if(score >= 100)
{
    var params = JSON.stringify({id: id, quiz: getDateTime()})
    $.ajax({
       type: "POST",
       url: "FAKENAME.php",
       dataType: "json",
       data: {data: params}
    }).done(function (data) {
       console.log(JSON.stringify(data) + "This is the data on .done");
    }).fail(function () {
       console.log("error");
       //alert( "error" );
    }).always(function (data) {
       console.log("finished");
       console.log(JSON.stringify(data));
       //alert( "finished" );
    });
}

Вы можете упростить свой код следующим образом

0 голосов
/ 28 июня 2018
var person = {
        name: $("#id-name").val(),
        address:$("#id-address").val(),
        phone:$("#id-phone").val()
    }

    $('#target').html('sending..');

    $.ajax({
        url: '/test/PersonSubmit',
        type: 'post',
        dataType: 'json',
        contentType: 'application/json',
        success: function (data) {
            $('#target').html(data.msg);
        },
        data: JSON.stringify(person)
    });

Пожалуйста, добавьте полный URL-адрес своей страницы php, тогда вам нужно проверить print_r ($ _ POST) вот так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...