我有一个从数据库加载的表,我希望能够单击并编辑该行并让它更新数据库。
目前它不起作用,我不明白为什么。有什么方法可以解决这个问题?如何判断ajax是否正在运行?我是jquery和ajax的新手,所以我不熟悉任何可能有用的调试技术。
以下是我目前的相关代码:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".edit_tr").click(function()
{
var ID=$(this).attr('id');
$("#fact_"+ID).hide();
$("#source_"+ID).hide();
$("#upvotes_"+ID).hide();
$("#downvotes_"+ID).hide();
$("#fact_input_"+ID).show();
$("#source_input_"+ID).show();
$("#upvotes_input_"+ID).show();
$("#downvotes_input_"+ID).show();
}).change(function()
{
var ID=$(this).attr('id');
var fact=$("#fact_input_"+ID).val();
var source=$("#source_input_"+ID).val();
var upvotes=$("#upvotes_input_"+ID).val();
var downvotes=$("#downvotes_input_"+ID).val();
var dataString = 'id='+ ID +'&fact='+fact+'&source='+source+'&upvotes='+upvotes+'&downvotes='+downvotes;
//var dataString = "'{'id':'"+ ID +"','fact':'"+fact+"','source':'"+source+"','upvotes':'"+upvotes+"','downvotes':'"+downvotes+"'}";
if(fact.length>0 && upvotes.length>0 && downvotes.length>0)
{
$.ajax({
type: "POST",
url: "table_edit_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
alert("Success");
$("#fact_"+ID).html(fact);
$("#source_"+ID).html(source);
$("#upvotes_"+ID).html(upvotes);
$("#downvotes_"+ID).html(downvotes);
}
});
}
else
{alert('Enter something.');}
});
// Edit input box click action
$(".editbox123").mouseup(function()
{return false});
// Outside click action
$(document).mouseup(function(){
$(".editbox123").hide();
$(".text").show();
});
});
</script>
table_edit_ajax.php是:
<?php
$con=mysqli_connect("XXXXXX","XXXXXX","XXXXXX","XXXXXX");
if (mysqli_connect_errno())
{echo "Failed to connect to MySQL: " . mysqli_connect_error();}
if($_POST['id'])
{
$id=mysqli_real_escape_string($_POST['id']);
$fact=mysqli_real_escape_string($_POST['fact']);
$source=mysqli_real_escape_string($_POST['source']);
$upvotes=mysqli_real_escape_string($_POST['upvotes']);
$downvotes=mysqli_real_escape_string($_POST['downvotes']);
$sql="UPDATE `FACTS` SET `fact_fact`='" .$fact . "', `fact_source`='" . $source . "', `fact_upvote_ctr`='" . $upvotes . "', `fact_downvote_ctr`='" . $downvotes . "' WHERE `fact_id`='" . $id . "';";
mysqli_query($con, $sql);
}
?>