如果条件PHP报告生成



我在药物管理WebApp中创建了一个报告模块。可以停止药物,当它发生时,数据库中的值转为1(1 =停止0 = active)。我需要报告在停止药物时显示在"由"列的"管理"中显示"停止",而不是管理员的名称,所以这是我的代码,但它不起作用:(它返回"停止"的一切。我在做什么错误的 ?任何帮助将不胜感激!

 for (var i = 0; i < medi.length; i++) {
    keys_str += "<tr>";
    keys_str += "<td>" + medi[i].date + "</td>";
    if (medi[i].isprn == 'y' || medi[i].isprn == "Y")
        keys_str += "<td>PRN</td>";
    else
        keys_str += "<td>" + medi[i].time + "</td>";
    keys_str += "<td>" + medi[i].medicationame + "</td>";
    keys_str += "<td>" + medi[i].dosage + "</td>";
    if (medi[i].is_stop !== '1' || medi[i].is_stop !== "1")
        keys_str += "<td>STOPED</td>";
    else
        keys_str += "<td>" + medi[i].administeredby + "</td>";
    keys_str += "<td>" + medi[i].witness + "</td>";
    keys_str += "<td>" + medi[i].notes + "</td>";
    keys_str += "<td >  <img width='150px'   src='" + medi[i].e_sign + "' /></td>";
    keys_str += "</tr>";

}
$("#medication_hid_pdf").html();
$("#medication_hid_pdf").html(keys_str);
var date;
var time;
var medicationame;
var dosage;
var addministered;
var witness;
var str = "";
var count = 0;
for (property in medi) {
    if (medi.hasOwnProperty(property)) {
        str += "<tr class='gradeX'>";
        date = medi[count].date;
        time = medi[count].time;
        medicationame = medi[count].medicationame;
        dosage = medi[count].dosage;
        addministered = medi[count].administeredby;
        witness = medi[count].witness;
        mid = medi[count].id;
        str += "<td>" + date + "</td>";
        if (medi[count].isprn == 'y' || medi[count].isprn == "Y")
            str += "<td>PRN</td>";
        else
            str += "<td>" + time + "</td>";
        str += "<td>" + medicationame + "</td>";
        str += "<td>" + dosage + "</td>";
        if (medi[count].is_stop !== '1' || medi[count].is_stop !== "1")
            str += "<td>STOPED</td>";
        str += "<td>" + addministered + "</td>";
        str += "<td>" + witness + "</td>";
        str += "<td>" + medi[count].notes + " </td>";
        str += "<td ><img width='150px'    src='" + medi[count].e_sign + "' /> </td>";
        str += "</tr>";
        count++;
    }
}

$("#medicationreport_data").html(str);
}
}); 

我不知道您的错误是什么,但是有很多次要的"问题"和混乱。

现在,由于此问题被标记为PHP,并且您提到从database获取数据,我将假设有一些PHP文件将此数据提供给JavaScript。我无法通过发布的内容来判断这件事。

但我的意思是,您应该在PHP(后端)方面尽可能多地格式化此数据。大多数是:

....
if (medi[count].isprn == 'y' || medi[count].isprn == "Y")
    str += "<td>PRN</td>";
else
    str += "<td>" + time + "</td>";
....
if (medi[i].is_stop !== '1' || medi[i].is_stop !== "1")
    keys_str += "<td>STOPED</td>";
else
    keys_str += "<td>" + medi[i].administeredby + "</td>";
......

基本上,我们只是在检查一个值并更改值,因此在这里,PHP的loosly键入性质将帮助您更多,而不是JavaScripts weakly键入。

在PHP中,这将是类似的

$formatted = []; 
foreach( $medi as $row ){ 
   $data = [];  //create a clean array if you have to
   $data['isprn'] = strtolower($row['isprn']) == 'y' ? 'PRN' : $row['time'];
   $data['is_stop'] = $row['is_stop'] != '1' ? 'STOPED' : '';
   //include other stuff in $data you need
   $formatted[] = $row;
}

然后,如果您的清洁度足够干净,在JavaScript中,您可以做这样的事情

 var str = '';
 for (var i = 0; i < medi.length; i++) {
    str += '<tr>';
    str += '<td>' + medi[i].join('</td><td>') + '</td>';
    str += '</tr>';
 }

有很多方法可以做到这一点,而且我缺少很多"必要"信息,才能真正能够做更多的事情。但是我"强烈地"建议,normalizing在服务器端上所有这些数据都尽可能地做到。然后,在客户端,您将真正减少向最终用户显示它所需的工作量。

最新更新