javascript - AJAX 将更改提交到数据库而不提交
问题描述
这只猫已经在 SO 中以多种方式剥皮,但我似乎无法将任何一种方式延伸到适用于我的示例的方式中。
我创建了一个由三列组成的表。第三列是一个文本框,将显示“未安装”或日期的占位符。我需要一个 onChange 事件来触发 PHP 发布脚本以将输入的值发送到数据库。
独立地,以下工作:
HTML
<div class="row">
<form action="./functions/post_Updates.php" method="Post">
<input name="RAID">
<input name="InstalledOn">
<button type="submit" value="go">go </button>
</form>
</div>
PHP
$RAID = $_POST['RAID'];
$InstalledOn = $_POST['InstalledOn'];
echo "<p>$RAID</p>";
echo "<p>$InstalledOn</p>";
$tsql = "insert into dbo.test (test) values ('$InstalledOn $RAID')";
提交后,TEST 表得到更新。
我以以下方式设置我的表格元素(作为生成表格本身的 PHP 函数的一部分:HTML
<input type=\"text\" class=\"InstalledOn_Input\" name=\"$r_RAAID\" onChange=\"DynamicUpdateCP($r_RAAID,this.value);\" placeholder=\"$r_CPInstalledOnDate\"></input>
JS
function DynamicUpdateCP(id,value){
$.ajax({
data: {RAID: id, InstalledOn: value},
url: './functions/post_Updates.php',
type: 'POST'
});
alert(id + ' has changed to ' + value);
}
如果我删除 $.ajax 部分,alert() 会按预期触发。但是,目前,编辑一个字段,然后按回车键或更改焦点,根本没有任何作用。
任何关于缺失环节的指导,在这里,都是惊人的。谢谢你。
@Pointy我将 onchange=... 的部分重新格式化为:
onChange=\"DynamicUpdateCP(\"$r_RAAID\",\"this.value\");\"'
我在调试控制台中得到的错误是:
未捕获的 SyntaxError:输入意外结束
jQuery 导入语句:
<script rel="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
解决方案
编辑:使用 HTTP 调用 JQuery 脚本,而不是 HTTPS。更新如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
将 jquery 的版本更改为 3.4.1,并且 ajax 调用运行良好。
推荐阅读
- java - 如何从 thymeleaf 中的数据库中检索表值,使用嵌套属性休眠?
- python - SQLite3:如何使用 200 多个“FROM”子句进行“LEFT JOIN”?
- html - Visual Studio Code 文件夹命名约定
- r - 不使用 unique() 的重复数据帧
- javascript - VueX 用作帐户的缓存
- json - 响应代码导致解析 JSON Flutter 时出现问题
- postgresql - 从 docker 外部的客户端到 postgres 的连接对用户 postgres 具有致命的密码身份验证
- python - 逻辑回归sklearn中的coef_
- autosar - Autosar DEM_GetEventUdsStatus 与 DEM 事件的关联
- python - 使用 Python 中的定义创建一个定义以覆盖或更多 plt.plot()