我有一个使用php-mysql的简单select语句,我有这个脚本来用另一个脚本更改文本。
<script type="text/javascript">
$(document).ready( function() {
$('#deletesuccess').delay(500).fadeOut(function(){
$('#deletesuccess').html("text2");
$('#deletesuccess').delay(500).fadeIn("slow");
});
});
</script>
<div id=deletesuccess > text1 </div>
试图使用php-mysql和上面的jquery脚本显示表中的数据,但它只显示最后一行,循环不起作用
$getTextQ = "select * from text";
$getTextR = mysql_query($getTextQ);
while($row = mysql_fetch_array($getTextR)){
?>
<script type="text/javascript">
$(document).ready( function() {
$('#deletesuccess').delay(500).fadeOut(function(){
$('#deletesuccess').html("<?php echo $row['desc']; ?>");
$('#deletesuccess').delay(500).fadeIn("slow");
});
});
</script>
<?php
}
但是无法将它与上面的PHP代码一起使用来逐个显示数据。
您可以通过使用jQuery ajax轻松实现这一点。
<script type="text/javascript">
$(document).ready( function() {
$.ajax({
url: 'getData.php',
dataType: 'json',
type: 'POST',
success: function(data) {
$('#deletesuccess').delay(500).fadeOut(function(){
$.each(data,function(key, value){
$('#deletesuccess').html(value);
$('#deletesuccess').delay(500).fadeIn("slow");
});
});
}
});
});
</script>
现在,在getData.php
页面中,您需要进行查询并返回json_encode数据。这意味着getData.php
文件应该包含以下代码:
<?php
$getTextQ = "select * from text";
$getTextR = mysql_query($getTextQ);
$json = '';
while($row = mysql_fetch_array($getTextR)){
$json .= $row['desc'];
}
echo json_encode($json);
?>
注意,php和javascript代码执行之间没有明显的区别。php代码将对该javascript代码进行回显,在php完成执行(在文档准备好的情况下)后,javascript代码将在istant执行,因此javascript的最后一次回显将在执行中生效。试着把代码分开。
问题是每次运行循环时都会覆盖JavaScript。相反,你应该这样做:
<script type="text/javascript">
var php_results = '';
</script>
<?php
$getTextQ = "select * from text";
$getTextR = mysql_query($getTextQ);
while($row = mysql_fetch_array($getTextR)){
?>
<script type="text/javascript">
php_results += "<?php echo $row['desc']; ?> | ";
</script>
<?php
}
?>
<script type="text/javascript">
$(document).ready( function() {
$('#deletesuccess').delay(500).fadeOut(function(){
$('#deletesuccess').html(php_results);
$('#deletesuccess').delay(500).fadeIn("slow");
});
});
</script>
当然,这需要清理才能使其美观,但它应该起作用。我添加了管道作为数据库中不同描述之间的分隔符。