Ajax PHP向数据库中写入一句话,不成功。毕设的一部分,已经被困扰好多天了,求大神们解答T_T

我就写了一段很简单的代码:点一下submit按钮,就调用submit()函数,然后将一句话"Thisisatestprogram!";写入数据库test中的haha表里。... 我就写了一段很简单的代码:点一下submit按钮,就调用submit()函数,然后将一句话"This is a test program!"; 写入数据库test中的haha表里。但是数据库里总是没变化。这是什么原因造成的?

我试过修改test.php文件,不用ajax部分,直接运行test.php向数据库里写入信息,没有问题。加上ajax之后就不行了。另外,submit()函数里console.log("This is function submit()!");这句代码也能正常运行。这是毕设的一部分,困扰我好几天了,自己实在找不到错误T_T,求帮忙

下面是所有代码:Newfile.html 和 test.php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test Page</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
//以下是要处理变量的值
function submit()
{
console.log("This is function submit()!");
var info = "This is a test program!";
$.ajax({
type : 'post', //type相当于 表单里面的method="post/get"
url : 'test.php', //要处理数据的页面
data : {info:info},
success : function(data){
//alert(data); //提示语句,这里可以注释了,因为本例执行逻辑都在course_collect.php
},
fail : function(err){
alert(err);
}
});

}
</script>
</head>

<body>
<div>
<input type="button" value="Submit" onclick="submit()">
</div>
</body>
</html>

下面是test.php
<?php
/*
* Created on 2013-4-8
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
$id1=$_POST['info'];
$con = mysql_connect("localhost","root","123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
mysql_query("INSERT INTO haha (info)
VALUES ('$id1')");
mysql_close($con);

?>
展开
 我来答
yhwReverse
2013-04-08
知道答主
回答量:15
采纳率:0%
帮助的人:16.2万
展开全部
我是大二的,但是对php还是很有经验的。学php语言上问题不是很大,但是调试方法很重要。

调试ajax的时候,首先得看信息是不是能正常发送到后台,如果用chrome的话,这个时候可以点开chrome的审查元素,看network,点开,里面可以看到本地向后台发送的信息以及后台返回的内容。 也可以用firebug插件看。

后台可以用var_dump输出一些变量来看,因为涉及到mysql,就输出执行的sql语句和mysql的错误信息来。具体调用什么函数可以到网上查,然后再查下错误信息对应的是什么错误,就好改正了。

祝你好运!
更多追问追答
追问
谢谢,我也觉得是ajax没有把信息传输到后台..因为单独的file.php文件运行的很正常
我用的firebug调试的,怎么看本地向后台发送的信息呢?
追答
搞定没? 我刚才出去了。

firebug里有网络或者network一项吧,你点击submit的时候,看看是不是firebug里多了一个连接,然后点开那个连接的详情,就能看到里面发送的内容了。

如果连接都没有发起,那可能是js有错误吧,你看看firebug里有没有错误信息之类的。
newchinays
2013-04-08 · TA获得超过1172个赞
知道小有建树答主
回答量:1238
采纳率:48%
帮助的人:396万
展开全部
data : {info:info},

==>

data : {info:'info'},

----------------------------------------------------------

mysql_query("INSERT INTO haha (info)
VALUES ('$id1')");

==》

mysql_query("INSERT INTO `haha` (`info`) VALUES ('{$id1}')");
追问
试过了,还是不行耶..
追答
type : 'post',

==>

type : 'POST',
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123010wqq
2013-04-08 · TA获得超过348个赞
知道小有建树答主
回答量:595
采纳率:0%
帮助的人:227万
展开全部
你直接用POST方法就好了啊 不需要用ajax方法,至于你说的没有插入数据库那么多半是你的值没有传到php处理程序中
更多追问追答
追问
我也这么觉得..可是为什么会传不到php程序里面呢? T_T
追答
你直接print_r($_POST)看看是不是没有传进去,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z57700417
2013-04-08 · 超过28用户采纳过TA的回答
知道答主
回答量:145
采纳率:0%
帮助的人:53.8万
展开全部

测试过了 可以的  mysql_query("INSERT INTO haha (id,info) VALUES ('1','23333')");


还有你这句  console.log("This is function submit()!");   写的不对!

追问
嗯,那为什么我这儿运行不对.. 修改下php文件直接运行的话是能插入数据都按数据库里面的,但是加了ajax就不行
追答
console.log("This is function submit()!");    把这句删了 检查数据库是否有字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8041235
2013-04-08 · TA获得超过227个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:221万
展开全部
程序没有问题!是否 <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 未加载成功???
更多追问追答
追问
应该加载成功了吧,我一直连着网呢..  而且也没什么报错信息。  怎么能看这个文件是否加载成功呢?
追答

用火狐或者google浏览器 右击查看源文件,看看能点开不。


我测试你的代码没有问题就只换了个数据库和文件名

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-08
展开全部
如果你的代码跟这完全一样就没问题。

直接运行test.php到底能不能插入那个字符串?
test.php和Newfile.html是不是在同一级目录?编码是否一致?
mysql编码是否跟test.php文件编码一致?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式