我正在尝试使用ajax和php将数据插入数据库,但这不起作用。与数据库的连接正在运行(仅使用php尝试)。我的代码的ajax部分是发布,值是有效的(使用firebug检查)。我使用postgresql作为我的数据库 我不知道为什么它不起作用。 当我按下评论按钮时它可以工作(我没有错误),但字段中的文字没有进入数据库
以下是代码:
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#submit").click(function(event) {
var name = $("#name").val();
var title= $('#title').val();
var comment= $('#comment').val();
$.post("comment.php", {name: name, title: title, comment: comment},
function (data) {
if (!data) {
$("#submit").append("Failed to reach server. Login Error.");
} else {
alert(data);
}
});
return false;
});
});
</script>
<div class='comments'>
<!--<form action="scripts/comment.php" method="POST"> -->
<form action="" method="POST">
<label>Name: </label><br /><input id="name"type="text" name="name" /><br /><br />
<label>Title: </label><br /><input id="title"type="text" name="title" /><br /><br />
<label>Comment: </label><br /><textarea id="comment" name="comment" cols="90" rows="7"> </textarea><br /><br /><br />
<input id="submit" type="submit" name="submit" value="Comment" /><br />
</form>
<hr width=auto size="5px" />
</div>
用于插入的php:
<?php
if (isset($_POST['name'])) {
// attempt a connection
$conn_string = "host= port= dbname= user= password=";
$dbh = pg_connect($conn_string);
if (!$dbh) {
die("Error in connection: " . pg_last_error());
}
$name =pg_escape_string($_POST['name']);
$title= pg_escape_string($_POST['title']);
$comment =pg_escape_string($_POST['comment']);
$today=pg_escape_string(date('d-m-y'));
$sql = "INSERT INTO comments VALUES ('$name','$comment','$today','$title',nextval('comments_id_seq'::regclass))";
$result = pg_query($dbh, $sql);
if (!$result) {
die("Error in SQL query: " . pg_last_error());
}
pg_close($dbh);
// $page='../index.php';
//header('Location:'.$page);
}
?>
任何帮助将不胜感激:)。感谢
答案 0 :(得分:0)
您的$ .post()调用忽略了服务器的响应,这使得故障排除变得困难。您可以采取一些措施来纠正这个问题:
首先,确保您已启用PHP错误报告。如果未在配置中打开它,请在脚本开头附近启用它,如下所示:
error_reporting(E_ALL);
接下来,找到一种方法来查看PHP脚本的输出。您可以修改post
调用以接收和处理响应,但更简单的方法是将HTML表单临时发布到绕过AJAX调用的脚本。查看将表单直接发布到脚本时脚本产生的输出。