如果单元格值未传递,则隐藏表格行

时间:2018-02-16 10:09:07

标签: javascript php css html-table

在表格中,如果行的单元格值为" 未送达" ,然后我想隐藏完整的行。下表显示在.php页面

enter image description here

原始代码

<tr>
  <td><?php echo $orderrecords[$k]["order_id"]; ?></td>

  <td>
<?php
$url = 'https://plapi.ecomexpress.in/track_me/api/';
$ch = curl_init();                    
curl_setopt($ch, CURLOPT_URL,$url);
$output = curl_exec ($ch); 
curl_close($ch);

$res = explode("\n",$output);
echo $res[13];
?> 
 </td>  

</tr>

最初我尝试使用 CSS 作为Jsfiddle

<tr>
  <td><?php echo $orderrecords[$k]["order_id"]; ?></td>


  <td>
 <input type='text'  value=
"<?php
$url = 'https://plapi.ecomexpress.in/track_me/api/';
$ch = curl_init();                    
curl_setopt($ch, CURLOPT_URL,$url);
$output = curl_exec ($ch); 
curl_close($ch);

$res = explode("\n",$output);
echo $res[13];
?> "/>
 </td>  

</tr>


<style>
input[type='text'][value='Undelivered'] {
  display: none;
}
</style>

我尝试使用 Javascript ,如下所示:

<tr>
  <td><?php echo $orderrecords[$k]["order_id"]; ?></td>

  <td class="sold">
<?php
$url = 'https://plapi.ecomexpress.in/track_me/api/';
$ch = curl_init();                    
curl_setopt($ch, CURLOPT_URL,$url);
$output = curl_exec ($ch); 
curl_close($ch);

$res = explode("\n",$output);
echo $res[13];
?> 
 </td>  

</tr>

<script>
$("td.sold").filter(function() {         
     return +$(this).text().trim() === 'Undelivered';         
}).parent().hide();
</script>

最后我尝试使用 PHP ,如下所示,但我没有得到解决方案:

<tr class="<?= $res[13] == 'Undelivered' ? 'hidden' :'';?>">
  <td><?php echo $orderrecords[$k]["order_id"]; ?></td>

  <td>
<?php
$url = 'https://plapi.ecomexpress.in/track_me/api/';
$ch = curl_init();                    
curl_setopt($ch, CURLOPT_URL,$url);
$output = curl_exec ($ch); 
curl_close($ch);

$res = explode("\n",$output);
echo $res[13];
?> 
 </td>  

</tr>

请帮我找到解决方案......

3 个答案:

答案 0 :(得分:1)

我不确定是否理解你的问题陈述,明确表示,你的意思是你有一张桌子:例如

&#13;
&#13;
<table>
            <tr><td>Name</td><td>Surname</td><td>Age</td></tr>
            <tr><td>John</td><td>Doe</td><td>33</td></tr>
            <tr><td>Undelivered</td><td>Piper</td><td>Age</td></tr>
            <tr><td>Yonna</td><td>Cheng</td><td>Age</td></tr>
        </table>
&#13;
&#13;
&#13;

你想隐藏整行,如果有,并且像上面第三行中有数据的单元格?或者您想要隐藏输入文本框。

答案 1 :(得分:1)

虽然不清楚你的应用程序是如何工作的,但可能是因为省略了很多,如果上面的例子不是隐藏行,那么可能对你有用。

float

在您自己尝试<?php $hide = ''; $url = 'https://plapi.ecomexpress.in/track_me/api/'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); $output = curl_exec ($ch); curl_close($ch); $res = explode("\n",$output); $status = $res[13]; if(strstr($status, "Undelivered") !== false) { $hide .= 'style="display: none;"'; } ?> <tr <?php echo $hide;?>> <td><?php echo $orderrecords[$k]["order_id"]; ?></td> <td><?php echo $status;?></td> </tr> 解决方案时,您尝试在PHP存在之前检查其值。充其量,这将检查先前爆炸的价值。在您执行$res[13]之前,您无法获得$res[13],因为在此之前它不存在。

已修改为$res = explode("\n",$output)更改为=,因为返回的值是完整的XML标记,而不仅仅是单词“Undelivered”

答案 2 :(得分:1)

正如我在评论中所说的那样,我真的不知道卷曲,也不知道你是如何得到你的“状态”价值的,但是你可以尝试这样的事情来测试状态值是否“未送达”在你之前开始构建你的行:

<table class="tbl-qa" border="1">
  <thead>
    <tr>            
      <th class="table-header">ID
      </th>
      <th class="table-header">ORDERID
      </th>            
      <th class="table-header">Status
      </th>          
    </tr>
  </thead>
  <tbody id="table-body">

<?php
  $tabindex=1;
  if(!empty($orderrecords))
  {
      foreach($orderrecords as $k=>$v)
  {

    $data['awb']='890927143';
    $url = 'https://plapi.ecomexpress.in/';
    $ch = curl_init();                    // initiate curl
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // define what you want to post
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
    $output = curl_exec ($ch); // execute
    curl_close($ch);
    $res = explode("\n",$output);
    echo $res[13];
    if($orderrecords[$k]["order_id"][$res[13]] !== "Undelivered") // BE SURE TO GET YOUR STATUS VALUE HERE + check if you need to use U or u, etc.
    {
      <- you build your row ->
    }
  } // end foreach
} // end if
?>
        </thead>
    </tbody>
</table>