我几乎没有创建一个脚本(因为我只是 ajax 的初学者),事实上我已经从某个地方复制了它的某些部分(ajax 脚本)。但是,当我单击链接(投票赞成/投票反对)时,没有任何反应,甚至 Mysql 数据库中的值也没有更改,但是单击提交按钮时,我的 MySql 数据库中发生了更改!这是我的代码--
-:::- 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 部分 (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 非常陌生,所以我无法找到任何解决方案。
最佳答案
如果这完全是您的代码(我的意思是,如果您只是从真实的 .php 文件中复制/粘贴它),则第一个 .php 文档的第二个脚本 block 中存在拼写错误。
javasript -> javasCript
尝试一下。
关于php - 为什么我的 Ajax 发布脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605133/