AJAX 将多个变量(包括 JSON)发送到 php 以进行数据库插入


AJAX send multiple variables, including JSON, to php for database insert

我正在尝试将两个变量发送到我的PHP文件以将它们插入数据库。一个变量称为"skuLabel",它只是文本,另一个是"jsonString",它是画布设计的JSON表示。当我只是尝试发送"skuLabel"时,它工作正常并像我期望的那样插入它。但是,当我只发送"jsonString"或两者时,我的PHP错误,当我尝试访问它们时,这两个索引不存在。我已经为此工作了几天,尝试了许多不同的方法,但结果都相同。这是我第一次尝试使用 AJAX,所以我确信我做错了一些简单的错误。我感谢任何人能给予的任何帮助!

这是我的代码:

var skuLabel = document.getElementById('sku').value;
var jsonString = JSON.stringify(canvas.toDatalessJSON());
$.ajax({
    type:   'POST',
    url:    'uploadDesign.php', 
    dataType: 'json',
    data:   {sku: skuLabel, json: jsonString},
    success: 
            function(data){
                alert(data);
            }
});

和 PHP:

$sku = $_POST['sku'];
$jsonData = $_POST['json'];
if($mysqli->query("INSERT INTO designs (sku, jsonData) VALUES($sku, $jsonData)")===TRUE){
    printf("Inserted successfully.'n");
}
if($stmt = $mysqli->prepare("INSERT INTO designs (sku, jsonData) VALUES(?, ?)")){
    $stmt->bind_param('ss', $sku, $jsonData);
    $stmt->execute();
    $stmt->close();
}

这修复了它。谢谢,昆汀!