2015-10-07 129 views
1

我有這個查詢,我想從中刪除單行DB點擊時刪除按鈕。現在,它將刪除整個DB行。但我想刪除一行ID點擊刪除按鈕後刪除單個db行

這裏的code

add_action('admin_menu', 'conference_register'); 
function conference_register(){ 
     add_options_page('Register Conference', 'Conference Registration', 'manage_options', 'conference-registration', 'display_conference'); 
} 

function display_conference(){ 
    echo "<form method='post'>"; 
    echo "<div class='wrap'>"; 
    echo "<h2>Conference Registration User Details</h2>"; 
    global $wpdb; 
    $results = $wpdb->get_results("SELECT `id`,`email`,`details` FROM `conference_register`"); ?> 
    <table class="wp-list-table widefat fixed striped pages"> 
     <thead> 
      <tr> 
      <th id="posts" class="manage-column column-posts num">ID</th> 
      <th id="email" class="manage-column column-email">Email</th>  
      <th id="description" class="manage-column column-description">Details</th> 
      <th id="posts" class="manage-column column-posts num">Delete</th> 
      </tr> 
     </thead> 
    <tbody id="the-list"> 
    <?php foreach($results as $value){ 
     echo "<tr>"; 
     echo "<td class='posts column-posts'>".$value->id."</td>"; 
     echo "<td class='email column-email'>".$value->email."</td>"; 
     echo "<td class='description column-description'><div id='col-container'>".$value->details."</div></td>"; 
     echo "<td class='posts column-posts'><input type='submit' name='delete_registration' value='delete'/></td>"; 
     echo "</tr>"; 
     if(isset($_POST['delete_registration'])){ 
      $wpdb->delete('conference_register', array('id' => $value->id)); 
     } 

    } 
    echo "</tbody></table></div></form>"; 
} 

code的點擊操作設置像這樣在上面的代碼:

if(isset($_POST['delete_registration'])){ 
    $wpdb->delete('conference_register', array('id' => $value->id)); 
} 

我在這裏缺少什麼? 任何幫助將不勝感激。

P.S.我想刪除一行而不使用jQuery

+0

當你說整個DB行,你的意思是整個表被刪除? –

+0

是的,整個表格現在被刪除。 –

回答

1

如果設置了delete_registration,則使用此操作,因爲您正在刪除該行。您需要爲每行設置/檢查並刪除該特定行。

<?php foreach($results as $value){ 
    echo "<tr>"; 
    echo "<td class='posts column-posts'>".$value->id."</td>"; 
    echo "<td class='email column-email'>".$value->email."</td>"; 
    echo "<td class='description column-description'><div id='col-container'>".$value->details."</div></td>"; 
    $delRow = "delete_registration_{$value->id}"; 
    echo "<td class='posts column-posts'><input type='submit' name= $delRow value='delete'/></td>"; 
    echo "</tr>"; 
    if(isset($_POST[$delRow])){ 
     $wpdb->delete('conference_register', array('id' => $value->id)); 
    } 

} 
+0

等一下我會試試看。 –

+0

現在什麼都沒有發生。該頁面只是重新加載,但一行沒有刪除。 –

+0

你有每行刪除按鈕?同時檢查更新後的答案。 – jitendrapurohit

0

你是不是通過ID或數據庫查詢語法是不行的

+0

查詢語法很好,只是不能刪除單行。 –

0

使用此:

echo "<td class='posts column-posts'><input type='submit' name= 'delete_registration_{$value->id}' value='delete'/></td>"; 
echo "</tr>"; 
    if(isset($_POST[delete_registration_{$value->id}])){ 
    $wpdb->delete('conference_register', array('id' => $value->id)); 
} 

這應該工作

0

我怎麼做,這是每一行我有一個hidden input字段,其​​默認值=「x」。當用戶更改任何字段時,我使用javascript將值更改爲「e」,如果用戶單擊「刪除」,則將值更改爲「d」並提交表單。我們使用switch。循環遍歷所有記錄,如果電子編輯,刪除。