我正在用jquery ajax制作一个php mysql插件。现在我想添加一个效果:如果插入成功与否,还会加载来自ajax process page
的html和fadein和fadeout。怎么修改?谢谢。
的index.php
<script type="text/javascript">
$(function(){
$("#submit").click(function(){
var formvalue = $("#content").val();
var url = 'submit=1&content=' + escape(formvalue);
$.ajax({
type: "POST",
url: "2.php",
data: url,
success: function(){
$("#content").val('');
$("#comment").fadeIn(1000, function () {
$("#comment").html(html);
});
$("#comment").fadeOut(1000, function () {
$("#comment").html('');
});
}
});
return false;
});
});
</script>
<form id="form" action="2.php" method="post">
<textarea name="content" id="content" cols="30" rows="3"></textarea> <br />
<input type="submit" id="submit" name="submit" value="Add comment" />
</form>
<div id="comment"></div>
2.PHP
<?php
$connection = mysql_connect('localhost', 'root' , 'root') or die(mysql_error());
$selection = mysql_select_db('my_content', $connection);
if(isset($_POST['submit'])){
$content = $_POST['content'];
$ins = mysql_query("INSERT INTO msg (content) VALUES ('$content')");
echo 'insert success';
}else{
echo 'failed';
}
?>
答案 0 :(得分:1)
好吧,您可以使用从后端文件获得的回调。 试试这个。
编辑:正如Pendo在下面提到的那样,您应该在从2.php
返回数据时使用JSON。
已修改版本
<强>的index.php 强>
<script type="text/javascript">
$(function(){
// EDIT
$('#comment').hide();
$("#submit").click(function(){
var formvalue = $("#content").val();
$.ajax({
type: "POST",
url: "2.php",
data: 'content='+formvalue,
dataType: 'json', // EDIT set dataType to json
success: function(ret){
$("#content").val('');
if(ret['success'])
{
//Fade in
$('#comment').html('Insert Success!').fadeIn(1000);
//Fade Out
setTimeout(function(){ $('#comment').html('').fadeOut(1000); },1500);
}else{
// Fade in
$('#comment').html('Insert Failed!').fadeIn(1000);
// Fade out
setTimeout(function(){ $('#comment').html('').fadeOut(1000); },1500);
}
}
});
});
});
<textarea name="content" id="content" cols="30" rows="3"></textarea> <br />
<input type="button" id="submit" name="submit" value="Add comment" />
<div id="comment"></div>
<强> 2.PHP 强>
<?php
$connection = mysql_connect('localhost', 'root' , 'root') or die(mysql_error());
$selection = mysql_select_db('my_content', $connection);
$content = $_POST['content'];
/* Set return data to false as default */
$json_ret = array('success'=>false);
$sql = "INSERT INTO msg (content) VALUES ('".$content."')";
if(mysql_query($sql))
{
/* insert success.. add true */
$json_ret['success'] = true;
}
echo json_encode($json_ret);
?>
答案 1 :(得分:0)
确保你的2.php文件正在返回,jQuery可以使用json对象或javascript数组。然后确保您的成功函数可以访问返回的数据,现在不是这样。
在上面给出的user741991示例中,您可以看到正在发送data
对象以及在成功执行ajax调用后调用的成功函数。如果它是一个可用的对象,你可以使用data.type和data.message(如果返回的对象包含一个名为'type'和'message'的键。)
希望我已经说清楚了,感觉我现在正在输入一些不可理解的词语。