gpt4 book ai didi

php - 在 XAMPP 环境中使用 ajax/jQuery 将值从 HTML 输入表单传递到 PHP 到 MySQL

转载 作者:行者123 更新时间:2023-11-29 17:50:36 25 4
gpt4 key购买 nike

我使用XAMPP apache设置了整个环境,并且mysql正在运行。我为我开始编程的另一个应用程序开发了非常相似的代码,它运行成功。

数据库表名=scm:

  • testID(AUTO_INCRMENT;int(11);PRIMARYKEY)
  • 名字(整数)
  • 姓氏(整数)

到目前为止我测试了什么:

  • 我可以通过浏览器 JS Console 收集输入字段的值
  • 我可以通过浏览器访问 PHP 文件,这将创建一个新的数据库条目
  • 函数 post() 正在运行,没有错误

如果我运行该函数,则不会将任何内容写入数据库。我错过了什么?

触发函数 post() 后得到的响应是:

post();
undefined

此外,我收到了“good”警报,因此 AJAX 功能确实可以正常工作。

我如何获得有关后台发生的情况的更多信息?

XAMPP 中的文件夹结构:

htdocs:

单片机
索引.html
插入.php
js
脚本.js
CSS
样式.css

索引页:

<!DOCTYPE html>
<html lang="en">
<head>
<title>The Fresh Connection DataBase</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="js/script.js"></script>
</head>
<body>

<div class="container">
<h2>Supply Chain</h2>
<input id="ssci" class="form-control" type="text" placeholder="settingsSupplyChainId">
<div class="panel panel-success">
<div class="panel-heading">Component</div>
<div class="panel panel-default">
<div class="panel-heading">Safety Stock</div>
<input id="sspack" class="form-control" type="text" min="0" max="9" placeholder="Pack">
<input id="sspet" class="form-control" type="text" placeholder="PET">
</div>
<div class="panel panel-default">
<div class="panel-heading">Lot Size</div>
<input id="lspack" class="form-control" type="number" placeholder="Pack">
<input id="lspet" class="form-control" type="number" placeholder="PET">
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading">Product</div>
<div class="panel panel-default">
<div class="panel-heading">Production Interval</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Safety Stock</div>
</div>
</div>
<button onclick="post()" id="btnPost" type="button" class="btn btn-block btn-primary">Post</button>
</div>

</body>
</html>

脚本.js:

function post(){
$.ajax({
type: "POST",
dataType: "text",
url: "insert.php",
data: {
firstname: $("#sspack").val(),
lastname: $("#sspet").val()
},
success: function(data) {
alert("good");
},
error: function(data) {
alert("Fehler: "+data.toString());
}
});
}

根据评论中的建议我重做了我的insert.php。当我在浏览器中运行 insert.php 时它工作正常,但是当我尝试将值从 ajax 传递到 php 时没有任何反应。数据库中没有条目,但ajax运行成功函数

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "scm";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("INSERT INTO test (testID, firstname, lastname) VALUES (?, ?, ?)");
$stmt->bind_param("iii", $testID, $firstname, $lastname);

// set parameters and execute
$testID = "";
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$stmt->execute();


echo "New records created successfully";

$stmt->close();
$conn->close();
?>

最佳答案

解决方案:

  • 将浏览器更改为 Google Chrome,因为 Firefox 未正确删除其缓存
  • 通过删除(暂时)不必要的步骤来简化 script.js
  • 完全过度考虑 insert.php

脚本.js

function post(){

$.ajax({
type: 'POST',
url: 'insert.php',
data: { firstname: $('#sspack').val(), lastname: $('#sspet').val() },
success: function(response) {

}
});
}

插入.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "scm";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

// prepare and bind
$stmt = $conn->prepare("INSERT INTO test (testID, firstname, lastname) VALUES (?, ?, ?)");
$stmt->bind_param("iii", $testID, $firstname, $lastname);

// set parameters and execute
$testID = '';
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$stmt->execute();


echo "New records created successfully";

$stmt->close();
$conn->close();
?>

该解决方案涵盖了通过 ajax 从 HTML 输入字段到 PHP 的传输,PHP 将最终值存储到 MySQL 数据库中。

对于所有经验丰富的程序员来说,这是一个问题。现在这对 MySQL Inception 来说是安全的还是至少让破解数据库变得更困难了?

关于php - 在 XAMPP 环境中使用 ajax/jQuery 将值从 HTML 输入表单传递到 PHP 到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com