AJAX提交更改到数据库而不提交

时间:2019-05-29 20:22:10

标签: javascript php ajax apache

这只猫在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>

1 个答案:

答案 0 :(得分:0)

编辑:正在使用HTTP而不是HTTPS调用JQuery脚本。更新到下面:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

将jquery的版本更改为3.4.1,并且ajax调用运行良好。