目前正在尝试使用特定ID号的行,如果选中该行,则允许用户单击按钮并将这些特定行追加到新表中以进行比较等。行都是使用php生成一个表格,我的代码只有一半完整,但我不知道从哪里开始。
这是我目前的jquery:
$(function(){
var rows = [];
$('compareRowButton').click(function(){
$('.compareRow:checked').each(function(){
var ele_id = $(this).attr('id');
$.ajax({
type : 'post',
url : 'compare.php', //query
data : 'post_id='+ ele_id, // passing id via ajax
success : function(data){
rows.push(data);
}
});
});
$('.displayTable').click(function(){
// append to table or divs
});
});
});
});
以下是compare.php中的内容:
<?php
include_once('functions.php');
include_once('link_costreport_2013.php');
sec_session_start();
if(isset($_POST['post_id'])){
$id = $_POST['post_id'];
}
$query = $link->prepare("SELECT *
FROM `s10`
WHERE `id` = :id");
$query->bindParam(':id', $id, PDO::PARAM_INT);
$query->execute();
$results = $query->fetch();
?>
我承认我对jquery / ajax有一些帮助,所以我对它如何运作的理解缺乏一点,但我从根本上不了解的一些事情是:
<td></td>
个元素中?该ID显然只是整个查询的一部分,但每个ID大约有6-7列数据。最后,我只是尝试显示包含所选行的新表并隐藏旧表。
如果我能提供任何其他信息,我很高兴,不确定还包括哪些内容。
提前致谢
:: EDIT ::
while ($results = $query->fetch()) {
$id = $results['id'];
$rowID = $results['id'];
if($results['301_cost_of_uncomp_care'] != 0){
$charityPortion = ($results['233_net_charity_care'] / $results['301_cost_of_uncomp_care']);
$baddebtPortion = ($results['291_cost_of_non_mcr_bad_debts'] / $results['301_cost_of_uncomp_care']);
} else {
$charityPortion = 0;
$baddebtPortion = 0;
}
echo "<tr id='$rowID'>";
echo "<td></td>";
echo "<td><input type='checkbox' id='$id' value='$id' class='compareCheck' name='post_id[]'></input></td>";
echo "<td>".$results['provider_num'];
echo "</td>";
echo "<td><a id='$id' data-toggle='modal' href='#provmodal' class='push'>".$results['provider_name']."</a>";
echo "</td>";
echo "<td $style>\$".number_format($results['233_net_charity_care']);
echo "</td>";
echo "<td $style>\$".number_format($results['291_cost_of_non_mcr_bad_debts']);
echo "</td>";
echo "<td $style>\$".number_format($results['301_cost_of_uncomp_care']);
echo "</td>";
echo "<td $style>".sprintf("%.1f%%", $charityPortion * 100);
echo "</td>";
echo "<td $style>".sprintf("%.1f%%", $baddebtPortion * 100);
echo "</td>";
echo "</tr>";
}
?>
这是计算最终字段的方式。是否可以在脚本中调用格式化修改格式?
答案 0 :(得分:1)
在PHP端使用json_encode()
对获取的结果进行编码:
$results = $query->fetch(PDO::FETCH_NUM);
echo json_encode($results);
然后要显示结果,请将JSON数组转换为表格的一行。
$.ajax({
type : 'post',
url : 'compare.php', //query
data : 'post_id='+ ele_id, // passing id via ajax
dataType: "json",
success : function(data){
var row = "<tr>";
$.each(data, function(i, val) {
row += "<td>" + val + "</td>";
});
row += "</tr>";
$("#tableID").append(row);
}
});
如果您只想显示所选列,请让PHP返回一个关联数组:
$results = $query->fetch(PDO::FETCH_ASSOC);
echo json_encode($results);
并提取所需的列:
$.ajax({
type : 'post',
url : 'compare.php', //query
data : 'post_id='+ ele_id, // passing id via ajax
dataType: "json",
success : function(data){
var row = "<tr>";
row += "<td>" + data.id + "</td>";
row += "<td>" + data.provider_num + "</td>";
row += "<td>" + data['291_cost_of_non_mcr_bad_debts'] + "</td>";
row += "</tr>";
$("#tableID").append(row);
}
});