数据库插入使用ajax,无法正常工作

时间:2013-04-17 13:26:30

标签: php html ajax postgresql

我正在尝试使用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);
}
?>

任何帮助将不胜感激:)。感谢

1 个答案:

答案 0 :(得分:0)

您的$ .post()调用忽略了服务器的响应,这使得故障排除变得困难。您可以采取一些措施来纠正这个问题:

首先,确保您已启用PHP错误报告。如果未在配置中打开它,请在脚本开头附近启用它,如下所示:

error_reporting(E_ALL);

接下来,找到一种方法来查看PHP脚本的输出。您可以修改post调用以接收和处理响应,但更简单的方法是将HTML表单临时发布到绕过AJAX调用的脚本。查看将表单直接发布到脚本时脚本产生的输出。