我到处寻找这个问题的答案,希望有人能帮我。我有下面的ajax/JS代码,还有一个外部PHP文件,我在下面调用它,然后是一个显示结果的index.PHP页面。
这段代码与我的外部php文件配合得很好。它从MySQL数据库获取发布的数据返回,并在#showdiv中显示内容。本质上,我是在查询MySQL数据库中的主机详细信息(ip、mac等)。在不刷新页面的情况下,这一切都恢复得很好。问题和我的问题是,当我再次提交带有另一个代码的表单时,结果会再次返回,但会附加到以前的结果中。问题:我该如何避免这种情况?!我已经研究过缓存和清除Ajax变量(内容)以及清空PHP页面,但在另一次提交时,我没有成功地清除之前的Ajax调用。这是我的ajax代码的问题吗?或者我需要澄清PHP方面的问题吗?
一般来说,我对ajax比较陌生,但了解脚本是如何检索信息的。在我把结果刮回index.php页面后,有没有办法刷新外部php文件来转储上一篇文章?
<script type="text/javascript">
$(function() {
$(".submit_button").click(function() {
var textcontent = $("#content").val();
var dataString = 'content='+ textcontent;
$.ajax({
type: "POST",
url: "HOST_gethost.php",
data: dataString,
success: function(html){
$("#show").after(html);
document.getElementById('content').value='';
});
}
return false;
});
});
</script>
提前感谢!!
编辑更多细节,因为我仍然有同样的问题:after(数据)工作,html(数据)不工作。在我的一生中,尤其是在mark解释了这两个函数之后,我不明白为什么一个函数有效,而另一个函数无效。html(数据)的返回只是空白,调试中也没有任何内容。
JS代码:
<script type="text/javascript">
$(function() {
$(".submit_button").click(function() {
var textcontent = $("#content").val();
var dataString = 'content='+ textcontent;
$.ajax({
type: "POST",
url: "HOST_gethost.php",
data: dataString,
success: function(data){
$("#show").html(data);
document.getElementById('content').value='';
}
});
return false;
});
});
</script>
PHP外部文件:
<?php
$conn = mysql_connect('','','') or die (mysql_error);
$db=mysql_select_db('blah', $conn) or die (mysql_error);
$content=$_POST['content'];
$fetch= mysql_query("SELECT * FROM blah.blahblah WHERE hostname LIKE '%$content%' ");
$row=mysql_fetch_array($fetch);
?>
<div class="showbox">
<table>
<th>Attributes</th><th>Details</th>
<tr><td>Name</td><td><?php echo $row['hostname']; ?></td></tr>
<tr><td>Last Known IP</td><td><?php echo $row['ipv4']; ?></td></tr>
<tr><td>Last Known User</td><td><?php echo $row['username']; ?></td> </tr>
<tr><td>Last Seen</td><td><?php echo $row['updated']; ?></td></tr>
<tr><td>Protection</td><td><?php echo $row['encryption_status']; ?></td></tr>
<tr><td>Firewall</td><td><?php echo $row['firewall_explanation']; ?></td></tr>
<tr><td>Script Policy</td><td><?php echo $row['policy']; ?></td></tr>
<tr><td>GPO Check-in</td><td><?php echo $row['gpo']; ?></td></tr>
</table>
</div>
使用
$("#show").html(html);
而不是
$("#show").after(html);