![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
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);
?> 展开
我试过修改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);
?> 展开
7个回答
展开全部
我是大二的,但是对php还是很有经验的。学php语言上问题不是很大,但是调试方法很重要。
调试ajax的时候,首先得看信息是不是能正常发送到后台,如果用chrome的话,这个时候可以点开chrome的审查元素,看network,点开,里面可以看到本地向后台发送的信息以及后台返回的内容。 也可以用firebug插件看。
后台可以用var_dump输出一些变量来看,因为涉及到mysql,就输出执行的sql语句和mysql的错误信息来。具体调用什么函数可以到网上查,然后再查下错误信息对应的是什么错误,就好改正了。
祝你好运!
调试ajax的时候,首先得看信息是不是能正常发送到后台,如果用chrome的话,这个时候可以点开chrome的审查元素,看network,点开,里面可以看到本地向后台发送的信息以及后台返回的内容。 也可以用firebug插件看。
后台可以用var_dump输出一些变量来看,因为涉及到mysql,就输出执行的sql语句和mysql的错误信息来。具体调用什么函数可以到网上查,然后再查下错误信息对应的是什么错误,就好改正了。
祝你好运!
更多追问追答
追问
谢谢,我也觉得是ajax没有把信息传输到后台..因为单独的file.php文件运行的很正常
我用的firebug调试的,怎么看本地向后台发送的信息呢?
追答
搞定没? 我刚才出去了。
firebug里有网络或者network一项吧,你点击submit的时候,看看是不是firebug里多了一个连接,然后点开那个连接的详情,就能看到里面发送的内容了。
如果连接都没有发起,那可能是js有错误吧,你看看firebug里有没有错误信息之类的。
展开全部
data : {info:info},
==>
data : {info:'info'},
----------------------------------------------------------
mysql_query("INSERT INTO haha (info)
VALUES ('$id1')");
==》
mysql_query("INSERT INTO `haha` (`info`) VALUES ('{$id1}')");
==>
data : {info:'info'},
----------------------------------------------------------
mysql_query("INSERT INTO haha (info)
VALUES ('$id1')");
==》
mysql_query("INSERT INTO `haha` (`info`) VALUES ('{$id1}')");
追问
试过了,还是不行耶..
追答
type : 'post',
==>
type : 'POST',
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你直接用POST方法就好了啊 不需要用ajax方法,至于你说的没有插入数据库那么多半是你的值没有传到php处理程序中
更多追问追答
追问
我也这么觉得..可是为什么会传不到php程序里面呢? T_T
追答
你直接print_r($_POST)看看是不是没有传进去,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序没有问题!是否 <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 未加载成功???
更多追问追答
追问
应该加载成功了吧,我一直连着网呢.. 而且也没什么报错信息。 怎么能看这个文件是否加载成功呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-08
展开全部
如果你的代码跟这完全一样就没问题。
直接运行test.php到底能不能插入那个字符串?
test.php和Newfile.html是不是在同一级目录?编码是否一致?
mysql编码是否跟test.php文件编码一致?
直接运行test.php到底能不能插入那个字符串?
test.php和Newfile.html是不是在同一级目录?编码是否一致?
mysql编码是否跟test.php文件编码一致?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询