如何将php-mysql数据与jquery合并以淡化数据

时间:2012-01-14 22:28:28

标签: php jquery mysql

我使用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代码逐个显示数据。

3 个答案:

答案 0 :(得分:2)

注意,你和php和javascript代码执行之间没有明显的区别。 php代码将对该javascript代码进行回声,并且在php完成执行后(在文档就绪),javascript代码将在istant执行,因此javascript的最后一个echo将在执行中起作用。尝试分开代码。

答案 1 :(得分:2)

您可以使用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);
?>

答案 2 :(得分:1)

问题是每次循环运行时都会覆盖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>

当然,必须将其清理干净以使其漂亮,但它应该有效。我将管道添加为数据库中不同描述之间的分隔符。