使用ajax和php将数据插入postgresql数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ajax和php将数据插入postgresql数据库相关的知识,希望对你有一定的参考价值。
任务的目标是在php中使用ajax将数据插入postgresql,页面不应刷新,只需插入数据并向用户显示操作成功的消息。
我跟着Insert Data mysql using Ajax and PHP,将插入数据编码到postgresql数据库中。但是有一些未知的问题。控件甚至不会转到我将输入插入数据库的服务器上的页面。我将客户端和服务器端代码放在同一个文件夹中,以避免因路径问题。我的客户端代码是:alta_usuari.php
<!DOCTYPE html>
<html>
<head>
<style> <?php include './../css/alta_usuari.css'; ?> </style>
<script src='http://code.jquery.com/jquery-3.1.1.min.js'></script>
<script>
$(document).ready(function() {
$('#button_alta').click(function(event) {
event.preventDefault();
console.log("about to start AJAX call");
var bracalet = $('#textbox_bracalet').val();
var tag = $('#textbox_tag').val();
$.ajax({
type: "POST",
url: 'pages/alta_usuari_server.php',
data: {
bracalet: bracalet,
tag: tag
},
success: function(data) {
console.log(tag);
console.log(result);
alert(result);
$("#message").html(data);
alert('data has been storeds to database');
}
});
});
});
</script>
</head>
<body>
<div id="mainDiv_alta_usuari">
<form id="form_alta_usuari" class="form_alta_usuari">
<p><input type="text" name="bracalet" id="textbox_bracalet" placeholder="Escaneja el bracalet...." /></p>
<p><input type="text" name="tag" id="textbox_tag" placeholder="Escaneja el tag...." /></p>
<p><input type="submit" id="button_alta" value="Donar d'alta" /></p>
</form>
<div id="message"> </div>
</div>
</body>
</html>
alta_usuario_server.php代码
<html>
<body>
Bracalet: <?php echo $_POST["bracalet"]; ?><br>
Tag: <?php echo $_POST["tag"]; ?>
<?php
header("Content-Type: application/json; charset=UTF-8");
$mac=$POST['tag'];
$bracalet=$POST['bracalet'];
$ini = parse_ini_file('config.ini');
$host=$ini['host'];
$port =$ini['port'];
$user =$ini['user'];
$pass =$ini['password'];
$db = $ini['db'];
$con = pg_connect("host=$host dbname=$db user=$user password=$pass")
or die ("Could not connect to server
");
$query = "INSERT INTO beacon VALUES($mac)";
$result = pg_execute($con, $query) or die("Cannot execute query: $query
");
if($result)
{
$data="Insert successfully";
}
else{
$data="Error";
}
echo json_encode($data);
pg_free_result($data);
pg_close($con);
?>
</body>
</html>
最简单的alta_usuario_server.php
<?php
$mac=$_POST['tag'];
$bracalet=$_POST['bracalet'];
echo $mac;
echo $bracalet;
$data="tahir";
echo json_encode($data);
?>
答案
在alta_usuari_server.php中,您在设置Content-Type标头之前发送了一些标记。这是无效的。您需要确保如果您正在设置响应标头,那么它是您脚本的第一个输出。它必须在markup和echo语句之前。
以上是关于使用ajax和php将数据插入postgresql数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 和 Ajax 创建动态表以将数据插入表中,如果不在视图或第一页中,则无法使用按钮
如何将 $_SESSION 变量添加到 Ajax 请求中并将数据插入到 mysql 数据库 PHP 中?
Ajax 使用 POST 方法发送数据,但 PHP 函数不会将它们插入到表中