我在一个表中有一些mysql数据,每行都有一个按钮。如果我点击这个按钮,就会出现一个引导模式和数据。我将mysql数据转换为json。.view\u数据是每行的按钮。如何将id发布到data.php并将json发送到modal中的表中?我正试图解决这个问题,但我是javascript新手,无法解决这个问题。
它实际上是工作的,但是如果我打开其中一个模式,数据以数组的形式显示:
我在一个表中有一些mysql数据,每行都有一个按钮。如果我点击这个按钮,就会出现一个引导模式和数据。我将mysql数据转换为json。.view\u数据是每行的按钮。如何将id发布到data.php并将json发送到modal中的表中?我正试图解决这个问题,但我是javascript新手,无法解决这个问题。它实际上是工作的,但是如果我打开其中一个模式,数据以数组的形式显示:
索引.php
<div class="modal fade" id="dataModal" tabindex="-1" role="dialog" aria-labelledby="basicModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel"></h4>
</div>
<div class="modal-body" id="moreInfo">
<div class="table-responsive">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('.view_data').click(function(){
var data_id = $(this).attr("id");
$.ajax({
url:"data.php",
method:"post",
data:{data_id:data_id},
success:function(data){
$('#moreInfo').html(data);
$('#dataModal').modal("show");
}
});
});
$.ajax({
url: 'data.php',
type: 'get',
dataType: 'JSON',
success: function(response){
var len = response.length;
for(var i=0; i<len; i++){
var id = response[i].id;
var table1 = response[i].table1;
var table2 = response[i].table2;
var conn = response[i].conn;
var tr_str = "<tr>" +
"<td align='center'>" + table1 + "</td>" +
"<td align='center'>" + table2 + "</td>" +
"<td align='center'>" + conn + "</td>" +
"</tr>";
$("#userTable").append(tr_str);
}
}
});
});
</script>
数据.php
$id=$_POST["data_id"];
echo $html = '<table id="userTable" class="table table-bordered"><tr>
<td align="center"><label><b>Data</b></label></td>
<td align="center"><label><b>Connect to</b></label></td>
<td align="center"><label><b>Description</b></label></td>
</tr>
</table></div>';
if ($conn){
if(isset($id)) {
$sql=$conn->prepare("SELECT table1.table1_id AS id1, table1.data AS table1,
GROUP_CONCAT(DISTINCT(table2.data) SEPARATOR ', ') AS table2,
GROUP_CONCAT(DISTINCT(table1_table2.connection) SEPARATOR ', ') AS conn
FROM table1
LEFT JOIN table1_table2 ON table1.table1_id = table1_table2.table1_id
LEFT JOIN table2 ON table2.table2_id = table1_table2.table2_id
WHERE table1.table1_id=?
GROUP BY table1.table1_id");
$sql -> bind_param('i', $id);
$sql -> execute();
$result = $sql -> get_result();
$sql -> close();
while($row= mysqli_fetch_assoc($result)){
$id = $row['id1'];
$table1 = $row['table1'];
$table2 = $row['table2'];
$conn = $row['conn'];
$return_arr[] = array("id" => $id,
"table1" => $table1,
"table2" => $table2,
"conn" => $conn);
}
}
echo json_encode($return_arr);
}
3条答案
按热度按时间e5nqia271#
这条线也许是个好的起点
这里,看起来像
data
是json格式的。但是,$.html(something)不会自动将数据格式化到您要创建的表中。这是有关$.html(something)的文档。”“something”应该是一个html字符串,而不是json数组
http://api.jquery.com/html/
试着服用
data
,遍历每个元素,并使用其他jquery命令将td、tr等附加到#moreinfo。一些参考文献
在jquery中将json数组转换为html表
在jquery中添加表行
9jyewag02#
这很简单。你可以把你的整张table送来。
ugmeyewa3#
您可以创建一个生成html表的函数,并在两个请求回调中使用它: