【问题标题】:PHP & AJAX Request 500(Internal Server Error)PHP & AJAX 请求 500(内部服务器错误)
【发布时间】:2016-05-30 14:08:54
【问题描述】:

我想使用 AJAX 请求更新每条记录的数据库。问题是当我提交编辑时它给了我一个 500 错误。更新“RecordData”为我提供了所有数据,仅此而已。

我的更新文件。

    $data = $_POST['recordData'];
    str_parse($data, $data);

    echo   "Record Id is: " . $data[0];
    echo $query = "UPDATE bier 
              SET naam = '$data['naam'], brouwer = '$data['brouwer']', type = '$data['type']', gisting = '$data['gisting']', perc = '$data['perc']', inkoop_prijs = '$data['inkoop_prijs']'
              WHERE id= '".$data['id']."'";
    if (mysqli_query($conn, $query)) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . mysqli_error($conn);
    }
    mysqli_close($conn);

echo $_POST['recordId'];

我的 AJAX 函数

function editRecord(data){
console.log(data);

$.ajax({
    type: "POST",
    data: {
        database: 'updateRecords',
        recordData: data.serialize()
    },
    url: "actions/update.php",
    dataType: "html",
    async: false,
    success: function(data) {
        ModalClose();
    }
});
}

还有我的表格:

        <form id="FormBier" action="#" method="post">
        <table>
            <tr>
                <td>Id</td>
                <td><input type="text" name="id"></td>
            </tr>
            <tr>
                <td>Naam</td>
                <td><input type="text" name="naam"></td>
            </tr>
            <tr>
                <td>Brouwer</td>
                <td><input type="text" name="brouwer"></td>
            </tr>
            <tr>
                <td>Type</td>
                <td><input type="text" name="type"></td>
            </tr>
            <tr>
                <td>Gisting</td>
                <td><input type="text" name="gisting"></td>
            </tr>
            <tr>
                <td>Percentage</td>
                <td><input type="text" name="perc"></td>
            </tr>
            <tr>
                <td>Inkoop Prijs</td>
                <td><input type="text" name="inkoop_prijs"></td>
            </tr>
            <tr>
                <input type="submit" onclick="editRecord($('#FormBier'))" value="bewerk">
            </tr>
        </table>
    </form>
</div>

【问题讨论】:

  • 500 - 检查您的日志
  • 什么是str_parse?您的意思是使用parse_str,如果是这样,那么您将获得500,因为它试图使用一个不存在的函数str_parse,并且因为您没有正确引用您的查询。正如 Fred -ii- 指出的那样,您需要检查服务器错误日志
  • 如@PatrickEvans 所述,错误报告会给你一些关于未定义函数的信息。
  • 我修复了错误 500,问题出在连接上,但它没有更新我的数据,我找不到错误,所以我不知道我必须在哪里搜索问题。
  • 所以我发现我的查询有问题,但我不知道我做错了什么。我尝试了几件事。

标签: php jquery ajax


【解决方案1】:

使用 isset 检查 POST 和变量并更改查询,如下代码所述。

   echo $query = 'UPDATE bier SET naam = '.$data["naam"].', brouwer = '.$data["brouwer"].', type = '.$data["type"].', gisting = '.$data["gisting"].', perc = '.$data["perc"].', inkoop_prijs = '.$data["inkoop_prijs"].' WHERE id= '.$data["id"];

【讨论】:

  • 问题不在查询中,但它没有使用我在输入字段中填写的文本。
  • 试试这个并使用变量检查输入 .print_r($_POST);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 2019-06-26
相关资源
最近更新 更多