2014-09-30 45 views
-1

我的文章列表,併爲他們每個人我有這樣一個複選框:PHP後複選框值

<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"1"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 
<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"2"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 

我有設置一個動作每篇文章這樣的下拉菜單(delete,approved,sort..... ):

<select class="selectD" name="action" id="action"> 
    <option value="delete">delete</option> 
    <option value="approved">approved</option> 
    <option value="noapproved">noapproved</option> 
    <option value="sort">sort</option> 
</select> 
<input type="submit" value="OK" class="btn btn-success btn-sm" name="S1" /> 

在PHP頁面我有:

if ($_POST['action'] == "delete") 
{ 
$selected = $_POST['selectedposts']; //LINE 15 
if (count($_POST['selectedposts']) !== 0) // LINE 16 
{ 
foreach($selected as $uid) 
{ 
SQL::DEL("DELETE FROM " . NEWS_ARTICLES . " WHERE id = ?", $uid); 
} 

echo "<div class=\"success\">delete success</div>"; 
} 
} 

編輯:我檢查我的鱈魚和看到此錯誤:

Notice: Undefined index: selectedposts in C:\xampp\htdocs\user\modules\allnews.php on line 15 

Notice: Undefined index: selectedposts in C:\xampp\htdocs\user\modules\allnews.php on line 16 

如何設置每篇文章刪除/覈准/排序操作?我的意思是:如何選擇任何文章與複選框,從下拉列表中選擇一個動作,併發送到頁面提交按鈕刪除/批准等行動?

回答

0

最後我有找到你的問題的確切答案,而是爲了這個答案,你需要先jQuery的下載中心,並在店內文件夾中名爲JS在你目前的程序文件夾

HTML文件:

<html> 
<body> 
<form action="my.php" method="post"> 
<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"1"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 
<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"2"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 
<select class="selectD" name="action" id="action"> 
    <option value="delete">delete</option> 
    <option value="approved">approved</option> 
    <option value="noapproved">noapproved</option> 
    <option value="sort">sort</option> 
</select> 
<input type="hidden" name="name" id="name" value="false"> 
<input type="submit" value="OK" class="btn btn-success btn-sm" name="S1" /> 
</form> 
<script src="js/jquery-1.11.1.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('.check').click(function() { 

document.getElementById('name').value="false"; 
$(".check:checked").each(function() { 
    document.getElementById('name').value="true"; 
}); 



    }); 
}); 
</script> 
</body> 
</html> 

php文件:(my.php)

<?php 
if ($_POST['action'] == "delete") 
{ 
    if($_POST['name']=="true") 
    { 
if (count($_POST['selectedposts']) != 0) 
{ 
$selected = $_POST['selectedposts']; 
foreach($selected as $uid) 
{ 
SQL::DEL("DELETE FROM " . NEWS_ARTICLES . " WHERE id = ?", $uid); 
} 
echo "<div class=\"success\">delete success</div>"; 
} 
} 
else { 
    echo "Nothing selected to delete"; 
} 
}?> 

進一步查詢評論below.if它滿足你,不要忘記接受並給予好評俺們

+0

請看看我的編輯Q.所需的代碼量 – 2014-09-30 19:02:39

+0

@EricFavoni終於我有找到你的問題的確切答案,而是爲了這個答案你需要jQuery的第一下載它,並存儲在您的當前程序文件夾中名爲js的文件夾..我編輯我的答案檢查它 – user3784251 2014-09-30 19:45:23

0

試試這個:

HTML:

<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"1"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 
<tr> 
    <td> 
    <input type="checkbox" name="selectedposts[]" class="check" value"2"/> 
    </td> 
    <td>TTILE </td> 
    <td>DATE </td> 
    <td>ACTIVITY</td> 
</tr> 

<!-- Only do this form once, not for every row! --> 
<form action="yourphpfile.php" method="post"> 
    <select class="selectD" name="action" id="action"> 
     <option value="delete">delete</option> 
     <option value="approved">approved</option> 
     <option value="noapproved">noapproved</option> 
     <option value="sort">sort</option> 
    </select> 
    <input type="submit"> 
</form> 

PHP:

if(count($_POST['selectedposts']) > 0){ 
    if($_POST['action'] == 'delete'){ 
     delete_posts($_POST['selectedposts']); 
    } 
    //Your other if-statements 
} 

function delete_posts($array){ 
    $ids = array(); 
    foreach($array as $key => $value){ 
     $ids[] = $value; 
    } 

    //Use PDO for your deletion 
    $db = new PDO(...); //Use YOUR PDO instantiation 
    $inQuery = implode(',', array_fill(0, count($ids), '?')); 
    $stmt = $db->prepare(
     "DELETE FROM `table` WHERE id IN (" . $inQuery . ")" 
    ); 

    $stmt->execute(array_values($ids)) 
} 

我沒有測試過,但看到那裏得到您!

+0

我想。在你和我的代碼,表單只發送行動值'(刪除,批准..等)'不action + selectpost值。請在編輯問題中查看我的錯誤。 – 2014-09-30 19:10:35

0

你可以通過檢查選中的複選框然後在其上使用開關盒來做到這一點,我只是敲了一個基本演示,我的意思是你可以在看到這個之後做出自己的工作代碼作品,唯一的問題是您選擇的選項sort中的值是一個PHP關鍵字,所以我將其更改爲sortthem

<?php 
function getActionFromSelect($option){ 
    switch($option){ 
     case "delete": 
      // ur delete query 
      echo "delete article "; 
      break; 
     case "approved": 
      // your approved query 
      echo "approve article"; 
      break; 
     case "noapproved": 
      // your noapproved query 
      echo "noapprove article"; 
      break; 
     case "sortthem": 
      // your sortthem query 
      echo "sort article "; 
      break; 
     default: 
      // default query but as you know what the 
      // values are going to be a little unneeded 
      // but its good practice to have it anyway 
      echo "default article query"; 
    } 
} 
if(!empty($_POST['Chk1'])){ 
    $article = $_POST['Chk1']; 
    $option = $_POST['select1']; 

    $action = getActionFromSelect($option); 
    echo $action, ' ', $article; 

}elseif(!empty($_POST['Chk2'])){ 
    $article = $_POST['Chk2']; 
    $option = $_POST['select2']; 

    $action = getActionFromSelect($option); 
    echo $action, ' ', $article; 

} 
?> 
<form action="" method="post"> 
    <div id="field"> 
     <input type="checkbox" id="Chk1" name="Chk1" value="1"/> 
     <select id="select1" name="select1"> 
      <option value="delete">delete</option> 
      <option value="approved">approved</option> 
      <option value="noapproved">noapproved</option> 
      <option value="sortthem">sort</option> 
     </select> 
    </div> 
    <div id="field"> 
     <input type="checkbox" id="Chk2" name="Chk2" value="2"/> 
     <select id="select2" name="select2"> 
      <option value="delete">delete</option> 
      <option value="approved">approved</option> 
      <option value="noapproved">noapproved</option> 
      <option value="sortthem">sort</option> 
     </select> 
    </div> 
    <input type="submit" value="submit"/> 
</form> 

編輯的switch成函數縮短