【发布时间】:2019-05-29 20:22:10
【问题描述】:
这只猫已经在 SO 中被剥了好几种皮,但我似乎无法将任何一种方法延伸到适合我的示例的方式。
我创建了一个包含三列的表。第三列是一个文本框,将显示“未安装”或日期的占位符。我需要一个 onChange 事件来触发 PHP post 脚本以将输入的值发送到数据库。
独立地,以下工作:
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\");\"'
我在调试控制台中得到的错误是:
Uncaught SyntaxError: Unexpected end of input
jQuery 导入语句:
<script rel="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
【问题讨论】:
-
您在浏览器的开发者控制台中是否收到任何错误/警告?当您更改输入内容时,开发者工具的网络选项卡中是否有任何活动?
-
该 PHP 代码看起来像是使用“更改”回调字符串创建了
<input>元素,该字符串在 ID 和值参数周围缺少引号。 -
@Wes "$ is not defined" 表示你忘记导入 jQuery。
-
Pointy 是对的,
$.ajax是 jQuery-library 的一部分。如果你想使用它,你必须将它导入到你的文档中。 -
天啊...我让它工作了。 1.10.2 的 JQuery 版本可能太旧了!我添加了 3.4.1,它立即工作......
标签: javascript php ajax apache