javascript - 我想将数据库元素数组提取到表中

标签 javascript php json ajax

我试图通过 json 对象将数据库数组提取到表中,但它给我数据库第一行作为表元素,其他作为最后一个数据库行。中间行不显示在输出中。这是我的代码

  <script id="source" language="javascript" type="text/javascript">

 $(function () 
 {
   $.ajax({                                      
  url: 'example.php',             
  data: "",                       
                                   //for example "id=5&parent=6"
  dataType: 'json',                //data format      
  success: function(data)          //on recieve of reply

        {   
    for(var i = 0; i < data.length; i++){
var uid = data[i];             
var firstname = data[i];       
var lastname = data[i];
var email = data[i];
var username = data[i];
var password = data[i];
    }
        $('#output').html("<b>uid: </b>"+uid+"<b> firstname:   </b>"+firstname+"<b> lastname: </b>"+lastname+"<b> email: </b>"+email+"<b> username: </b>"+username+"<b> password: </b>"+password); 


    } 
   });
   }); 
   </script>

示例.php

<?php

// server info
 $server = 'localhost';
 $user = 'root';
 $pass = '';
 $db = 'ocean';

 $connection = mysql_connect($server, $user, $pass) or die(mysql_error());
$database = mysql_select_db($db) or die(mysql_error());


  $result = mysql_query("select * from oops");        //query

  $array = array();

 while ($row = mysql_fetch_row($result)) {
 $array[] = $row;
 }

 echo json_encode($array);



  ?>

output comes in that format 应该如何以正确的方式准备输出

最佳答案

第一:

$('#output').html("<some code>");

每次都会覆盖#output的内容。因此,您只能看到最后的结果。我认为你应该使用 append():

$('#output').append("<some code>");

或者将所有行收集到一个变量中并使用 html() 一次:

var html = "";
for(var i = 0; i < data.length; i++){
    var uid = data[i];             
    var firstname = data[i];       
    var lastname = data[i];
    var email = data[i];
    var username = data[i];
    var password = data[i];

    html += "<b>uid: </b>"+uid+"<b> firstname:   </b>"+firstname+"<b> lastname: </b>"+lastname+"<b> email: </b>"+email+"<b> username: </b>"+username+"<b> password: </b>"+password; 
}
$("#output").html( html );

第二:

var uid = data[i];             
var firstname = data[i];       
var lastname = data[i];

所有这些变量都指向一个值data[i]。 也许是:

var uid = data[i].uid;             
var firstname = data[i].firstname;       
var lastname = data[i].lastname;

更新:

如果您想将数据显示为表格行,您可以执行以下操作:

html += "<tr>\
    <td><b>uid: </b>"+uid+"<b></td>\
    <td><b>firstname: </b>"+firstname+"</td>\
    <td><b> lastname: </b>"+lastname+"</td>\
    <td><b> email: </b>"+email+"</td>\
    <td><b> username: </b>"+username+"</td>\
    <td><b> password: </b>"+password+"</td>\
</tr>";

之后:

$("#output").html( "<table>" + html + "</table>" );

关于javascript - 我想将数据库元素数组提取到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389098/

相关文章:

javascript - 在任何 DOM 元素旁边插入 Logo

php - 如何正确连接具有多对一关系的表

php - UTF-8贯穿始终

java - JSON重复键,使用java(spring)验证

JSON:序列化 Guava optional

javascript - 带有 id 的 ng-route 可以正常工作,但是 json 中带有 id 的 id 是错误的

javascript - 在页面加载时,创建 X 个 div

javascript - 为什么即使在 Prop 对象更改后功能组件也不会重新渲染?

php - Doctrine - OneToOne 单向与 OneToOne 双向

javascript - Firebase 响应具有 HTML 标签