2016-10-05 11 views
-1

Iが空のフィールドの場合には行全体を非表示にする:フィールドが空の場合に行を非表示にするにはどうすればいいですか?

enter image description here

いくつかのフィールドが空である場合に、IのいずれかのJavaScriptから、すべての行全体を非表示にしますまたはjqueryから。私はいくつかのトリックを試みたが、私は行全体を隠すものはない。それは可能ですか?

  <table class="pmpro_affiliate_report" width="100%" cellpadding="0" cellspacing="0"> 
     <thead> 
      <tr>     
       <th>Code</th> 
       <th>Sub-ID</th>    
       <th>Name</th>  
       <th>Miembro</th>       
       <th>Date</th> 
       <th>Estado</th>    
       <th>Order Total</th> 
      </tr> 
     </thead> 
     <tbody> 
      <?php 
       $sqlQuery = "SELECT a.code, o.affiliate_subid as subid, a.name, u.user_login, UNIX_TIMESTAMP(o.timestamp) as timestamp, o.total FROM $wpdb->pmpro_membership_orders o LEFT JOIN $wpdb->pmpro_affiliates a ON o.affiliate_id = a.id LEFT JOIN $wpdb->users u ON o.user_id = u.ID WHERE o.affiliate_id <> '' "; 
       if($report != "all") 
        $sqlQuery .= " AND a.id = '" . esc_sql($report) . "' "; 
       $affiliate_orders = $wpdb->get_results($sqlQuery); 
       if(empty($affiliate_orders)) 
       { 
       ?> 
        <tr><td colspan="6" class="pmpro_pad20">      
         <p>No affiliate signups have been tracked yet.</p> 
        </td></tr> 
       <?php 
       } 
       else 
       { 
        global $pmpro_currency_symbol; 
        // if($affiliate_orders->user_login != ''){ 
        foreach($affiliate_orders as $order) 
        { 
        ?> 
        <tr> 
         <td><?php echo $order->code;?></td> 
         <td><?php echo $order->subid;?></td> 
         <td><?php echo stripslashes($order->name);?></td> 
         <td><?php echo $order->user_login; if($order->user_login == '') {unset($order->user_login);}?></td> 
         <td><?php echo date(get_option("date_format"), $order->timestamp);?></td> 
         <td><?php echo $used_statuses;?></td> 
         <td><?php echo $pmpro_currency_symbol . $order->total;?></td> 
        </tr> 
        <?php 
        } 
       } 
      ?> 
     </tbody> 
     </table> 
+0

を働いているあなたは、この チェックhttp://api.jquery.com/toggleclass/

イムを行うにはjQueryのブートストラップを必要とすると思いますPHPコードを表示し、PHPで質問にタグ付けしますか? – David

答えて

0

私はあなただけですべてのフィールドに値を持っている場合のみ、テーブルの行を返す、あなたのforeachで順序値を反復処理したほうが良いかもしれないと思います。そうしないと、HTMLを隠す唯一の目的で不必要なHTMLが出力されます。

言われていること、あなたはJS/jQueryのを使用して設定された場合は、

$('table tr').each(function() { //For each table row 

    //If there's an empty field 
    if ($(this).find('td:empty').length) { 

     //Remove the row 
     $(this).remove(); 

    } 
}); 

JSFiddle

あなたの質問はそれがあったか否かの漠然とした...このような何かを行うことができます任意のフィールド。特定のフィールドの場合は、PHPやSQLでそれを行うだけです。

0

あなたは、このためのJSを必要はありません、ただTRをエコーする前にif文を追加

foreach($affiliate_orders as $order) 
{ if(!empty(.......)){ 
0

あなたは空のフィールドがあるwhereever値を選択しないように、SQLクエリを確認渡すことができ

SELECT a.code, 
o.affiliate_subid as subid, 
a.name, 
u.user_login, 
UNIX_TIMESTAMP(o.timestamp) as timestamp, 
o.total FROM $wpdb->pmpro_membership_orders o 
LEFT JOIN $wpdb->pmpro_affiliates a 
ON o.affiliate_id = a.id 
LEFT JOIN $wpdb->users u 
ON o.user_id = u.ID WHERE 
o.affiliate_id <> '', 
o.affiliate_subid <> '', 
a.name <> '', 
u.user_login <> '', 
o.timestamp <> '', 
o.total <> '' 
-2

[UPDATE] jQueryのclassList.add( '見えない')と はい。

私はあなたがJavaScriptでこれを実行したい場合は、なぜあなたは私のプロジェクトでこれを使用して、それが

function changeVisibility(){ 
    $secret.classList.add("invisible"); 
} 
関連する問題