我几乎没有创建一个脚本(因为我只是ajax的初学者),实际上我从某处复制了它的某个部分(ajax脚本)。但是,当我点击链接(投票了/投票下来)没有任何反应,甚至没有在Mysql数据库更改的价值,但点击提交按钮我得到了我的MySql数据库的变化!这里是我的代码 -为什么我的Ajax发布脚本不起作用?
- ::: - HTML部分(test.php的) - ::: -
<html>
<title>
TEST
</title>
<head>
<script type="text/javascript" src="jquery.1.4.4.js"></script>
<script type="text/javascript">
function vote(type)
{
$.ajax({
'url': 'test.func.php',
'type': 'POST',
'dataType': 'json',
'data': {type: type},
'success': function(data)
{
if(data.status)
{
if(data.voted)
{
$(document).ready(function() {
$("span#status"+type).attr("innerHTML","You have voted up!");
});
}
else
{
$(document).ready(function() {
$("span#status"+type).attr("innerHTML","You have voted Down!");
});
}
}
},
beforeSend: function()
{
$(document).ready(function() {
$("span#status"+type).attr("innerHTML","Voting....");
});
},
'error': function(data)
{
$(document).ready(function() {
$("span#status"+type).attr("innerHTML","An error occureed");
});
}
});
}
</script>
</head>
<body>
<a href="#" onclick="vote('up')" > Vote Up </a>
<span id="status_up" ></span>
<br>
OR
</br>
<a href="#" onclick="vote('down')" > Vote Down </a>
<span id="status_down" ></span>
</body>
</html>
- ::: - PHP PART(test.func.php ) - ::: -
<?php
function db_connect($i)
{
if(isset($i))
{
if(mysql_connect('localhost', 'root', 'root'))
{
if(mysql_select_db($i))
{
return;
}
else
{
echo 'ERROR';
}
}
else
{
echo 'ERROR';
}
}
else
{
echo 'ERROR';
}
}
if($_POST)
{
db_connect('tests');
$vote_type=$_POST['type'];
$post_id = '123';
$query = mysql_query("SELECT * FROM test WHERE post_id='$post_id'");
$cur_vote_get = mysql_fetch_array($query);
$vote_up = $cur_vote_get['votes']+1;
$vote_down = $cur_vote_get['votes']-1;
if($vote_type=='up')
{
mysql_query("UPDATE test SET votes='$vote_up' WHERE post_id='$post_id'");
return json_encode(array("status" => true, "voted" => true));
}
elseif($vote_type=='down')
{
mysql_query("UPDATE test SET votes='$vote_down' WHERE post_id='$post_id'");
return json_encode(array("status" => true, "voted" => false));
}
}
?>
JavaScript错误解决了!
一切解决了!
由于我对Ajax非常陌生,所以我无法找到任何解决方案。
什么是您的控制台说?有没有任何JavaScript错误?另外,添加一些警报,看看你的代码得到的地方,以及它不在... – Nanne 2011-04-09 12:53:10
你用过小提琴手或萤火虫来检查ajax调用是否被尝试? – Munzilla 2011-04-09 12:53:54
不,我没有,但我会在一分钟内。 – 2011-04-09 12:55:15