我在这个非常简单的网站上有AJAX,PHP,jquery和mySQL。所有都有一个文本区域,它将数据发送到数据库并使用ajax \ jquery将该数据显示在索引页面上。出于某种原因,我按提交并将数据转到数据库,但我必须自己刷新页面才能在页面上看到该数据。我假设问题与我的AJAX JQuery有关,甚至与索引中的一些错误有关。此外,当我在文本区域中键入文本并按提交时,文本将保留在textarea中,直到我刷新页面。哈哈,对不起,如果这是一个这样的菜鸟问题......我正在努力学习。非常感谢
这是AJAX:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".submit").click(function()
{
var comment = $("#comment").val();
var post_id = $("#post").val();
var dataString = '&comment=' + comment
if(comment=='')
{
alert('Fill something in please!');
}
else
{
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="noworries.jpg" /> ');
$.ajax({
type: "POST",
url: "commentajax.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").append(html);
$("ol#update li:last").fadeIn("slow");
$("#flash").hide();
}
});
}return false;
}); });
</script>
这是索引\表单区域:
<body>
<div id="container"><img src="banner.jpg" width="890" height="150" alt="title" /></div>
<id="update" class="timeline">
<div id="flash"></div>
<div id="container">
<form action="#" method="post">
<textarea name="comment" id="comment" cols="35" rows="4"></textarea><br />
<input name="submit" type="submit" class="submit" id="submit" value=" Submit Comment " /><br />
</form>
</div>
<id="update" class="timeline">
<?php
include('config.php');
//$post_id value comes from the POSTS table
$prefix="I'm happy when";
$sql=mysql_query("select * from comments order by com_id desc");
while($row=mysql_fetch_array($sql))
{
$comment=$row['com_dis'];
?>
<!--Displaying comments-->
<div id="container">
<class="box">
<?php echo "$prefix $comment"; ?>
</div>
<?php
}
?>
这是我的commentajax.php
<?php
include('config.php');
if($_POST)
{
$comment=$_POST['comment'];
$comment=mysql_real_escape_string($comment);
mysql_query("INSERT INTO comments(com_id,com_dis) VALUES ('NULL', '$comment')");
}
?>
<li class="box"><br />
<?php echo $comment; ?>
</li>
我很抱歉这么多代码,但我刚开始在四天前学习这个,这可能是网站运行之前的最后一个错误。
答案 0 :(得分:0)
<id="update" class="timeline">
和
<class="box">
你这里有html中不存在的标签,我相信它是你问题的根源。
当你说
时 $("ol#update")
在你的JQuery中,你试图找到一个id为update的有序列表标签,看起来像这样......
<ol id="update"></ol>
但是在您的网页中没有看起来像这样的标记。也许您需要将<id="update" class="timeline">
替换为<ol id="update" class="timeline"></ol>
。如果这是您要找的,请选择此答案旁边的复选标记。谢谢!