2014-01-31 107 views
0

美好的一天,php日期只顯示在第一行

我已收到此代碼以形成忍者形式插件。該代碼使您能夠將表單的提交放在前端。一切工作正常,直到我們添加了日期功能。這個函數應該把日期放在它創建的每一行的前面。不幸的是,它只把日期放在第一行的前面,之後的每一行,信息都向左移動一列而沒有日期。

<?php 
function test_display_submissions($args = array()) { 
    // $args = array(
    // 'form_id' => 1 
    //); 
    $form_id = $args['form_id']; 
    $columns = $args['cols']; 
    $columns = explode(',', $columns); 
    $sub_results = ninja_forms_get_subs(array('form_id' => $form_id)); 
    $plugin_settings = get_option("ninja_forms_settings"); 
    if(isset($plugin_settings['date_format'])){ 
     $date_format = $plugin_settings['date_format']; 
    } else { 
     $date_format = 'm/d/Y'; 
    } 
    $content = '<table> 
     <thead> 
    <tr>'; 
    $content .= '<th>Date</th>'; 
    foreach ($columns as $id) { 
     $field = ninja_forms_get_field_by_id($id); 
     if(isset($field['data']['label'])){ 
      $label = $field['data']['label']; 
     } else { 
      $label = ''; 
     } 
     $content .= '<th>' . $label . '</th>'; 
    } 
    $content .= '</tr> 
    </thead> 
    <tbody>'; 
    $content .= '<td>' . date($date_format, strtotime($sub['date_updated'])) . '</td>'; 
    foreach ($sub_results as $sub) { 
     $fields = $sub['data']; 
     echo '<tr>'; 
     foreach ($fields as $field) { 
      $field_id = $field['field_id']; 
      $user_value = $field['user_value']; 
      if (in_array($field_id, $columns)) { 
       $content .= '<td>' . $user_value . '</td>'; 
      } 
     } 
    $content .= '</tr>'; 
    } 
    $content .= '</tbody> 
    </table>'; 
    return $content; 
} 
add_shortcode('display_subs', 'test_display_submissions'); 
+0

我建議你編輯你的問題並刪除密碼。這隻會導致不好的事情。 – Askanison4

回答

0

在將日期添加到表格後開始。

應該<tbody><tr><td>DATE STUFF</td><td>MORE CONTENT</td></tr><tbody> 這種格式和您的日期欄應置於你的foreach循環中。

2

問題出在foreach循環中。你需要把你的日期放在循環中,而不是之前:

foreach ($sub_results as $sub) { 
     // Display date 
     $fields = $sub['data']; 
     $content .= '<tr>'; 
     $content .= '<td>' . date($date_format, strtotime($sub['date_updated'])) . '</td>'; 
     foreach ($fields as $field) { 
      $field_id = $field['field_id']; 
      $user_value = $field['user_value']; 
      if (in_array($field_id, $columns)) { 
       $content .= '<td>' . $user_value . '</td>'; 
      } 
     } 
     $content .= '</tr>'; 
    } 
    $content .= '</tbody> 
+1

這裏的foreach也不正確。 不應該在 – Askanison4

+0

之外是的,我改變了代碼。 –

+0

+1,這是正確的答案 – Askanison4