2009-12-18 8 views
0

Je souhaite créer une fonctionnalité qui permet à l'utilisateur de modérer les questions et qui est similaire au commentaire wordpress ou à la modération typique de courrier électronique qui utilise une case à cocher pour approuver/supprimer plusieurs questions à la fois.Supprimer plusieurs lignes si la case est cochée

Comment est-ce que je modifierais le code suivant pour vérifier quelles questions sont vérifiées et réagir aux boutons d'effacement quand pressé? Vous pouvez remarquer à partir du code ci-dessous que je peux actuellement le faire avec des questions individuelles, mais je veux donner plus de pouvoir à l'utilisateur.

<h2><a href="#">Moderate Questions</a></h2> 
<div> 
    <button type="button" class="btn" name="delete" id="delete">Delete</button> 
    <button type="button" class="btn" name="approve" id="approve">Approve</button> 
    <?php 

    // Select all unapproved questions in db 
    $sql = "SELECT question_id, question, DATE_FORMAT(question_date, '%e %b %Y at %H:%i') AS dateattime FROM questions WHERE question_approved='0' ORDER BY question_date DESC"; 
    $result = mysql_query($sql); 
    $myquestions = mysql_fetch_array($result); 

    if($myquestions) { 
    do { 
     $question_id = $myquestions["question_id"]; 
     $question = $myquestions["question"]; 
     $dateattime = $myquestions["dateattime"]; 
     echo "<div class='question'>"; 
     echo "<span value='$question_id'>"; 
    echo "<input name='checkbox' type='checkbox' id='checkbox' value='$question_id'>"; 
     echo "$question - <span class='date'>Asked $dateattime </span>"; 
     echo "</span>\n"; 
     echo "<div class='question-controls'><a href='".$_SERVER["PHP_SELF"]."?delete=$question_id' title='Delete this question' class='delete' onclick='return confirm(\"Are you sure you want to delete this question?\")'>Delete</a> | <a href='#'>Edit</a> |"; 
     echo " <a href='".$_SERVER["PHP_SELF"]."?approve=$question_id' title='Publish this question'>Approve</a></div>"; 
     echo "</div>"; 
    } while ($myquestions = mysql_fetch_array($result)); 
    } else { 
    echo "<p>No one has asked a question recently.</p>"; 
    } 
    ?> 
</div> 

Répondre

1

Vous devez modifier l'élément 'checkbox' afin de créer un tableau de valeurs. Code:

echo "<input name='checkbox[]' type='checkbox' id='checkbox' value='$question_id'>"; 

Après que votre peut appeler cette variable à partir du code php (en utilisant $ _REQUEST [ 'case'] par exemple) et il sera tableau. Ainsi, vous pouvez itérer à travers et supprimer ces lignes de la base de données.

+1

Le formulaire doit être multipart/form-data dans ce cas. –

+0

Merci pour la correction. Je n'ai pas fait attention à cela, car il n'y a pas d'élément de formulaire dans l'extrait de code. – Alex

+0

Ok merci messieurs! Alors, à quoi ressemblerait le code pour appeler la variable et supprimer les éléments sélectionnés de la base de données? – Katundu

Questions connexes