Hey guys
So my question is related to the delete and edit functions in a table
When I am able to delete entries, I can’t edit
When I am able to edit entries, I can’t delete
Let me explain… Started with the table script first (excerpt):
echo "<form method = \\"post\\" action=\\"{$_SERVER['PHP_SELF']}\\">
<table>
<tr>
<td width=\\"55\\" class=\\"formLabelsS2\\"><input type=\\"submit\\" name=\\"delete_mail\\" value=\\"Delete\\" id=\\"delete_mail\\"></td>
</tr>
</table>";
echo "<table class=\\"sortable\\" id=\\"query_quick2\\" width=\\"100%\\" >\\r\
";
echo "\ <tr><th class=\\"sorttable_nosort\\" ></th><th class=\\"sorttable_nosort\\" ></th>
<th class=\\"sorttable_alpha\\" >Promoter Locus</th>\\r\
";
if($result->num_rows){
while ($row = $result->fetch_array()){
$RowCount ++;
$row_color = ($RowCount % 2) ? $color1 : $color2;
echo "\ <tr id=\\"{$row['id']}\\" class=\\"$row_color\\" >
<!--<form method = \\"post\\" action=\\"{$_SERVER['PHP_SELF']}\\">-->
<td><input type =\\"hidden\\" name = \\"id\\" value=\\"{$row['id']}\\"/></td>
<td><input name=\\"checkbox[]\\" type=\\"checkbox\\" id=\\"checkbox[]\\" value=\\"{$row['id']} \\"></td>
<td>{$row['pro']}</td>
<td><input type=\\"submit\\" name=\\"edit_mail\\" value = \\"Edit\\"/></td>
<!--</form>-->
</tr>";
}
}
echo "</table>";
echo "</form>";
Script for deleting entries (excerpt):
} elseif(isset($_SESSION['user_id']) AND isset($_POST['delete_mail'])){
//user is deleting existing queries
$connect=db_connect_2();
if($_POST['checkbox']){
{
foreach($_POST['checkbox'] as $check)
{
$delete = mysqli_query($connect, "DELETE FROM mailing_list WHERE id = '$check'");
}
$msgs[] = "Entry deletion was successful!";
$body = "account.php";
}
When “edit_mail” button is pressed:
} elseif(isset($_SESSION['user_id']) AND isset($_POST['edit_mail'])){
//user is editing existing queries
$body = "mailingList_edit.php";
}
A editing form is displayed based on the value of $id:
<?php
//retrieve user information
$conn=db_connect_2();
$id = mysqli_real_escape_string($conn, $_POST['id']);
$result = $conn->query("SELECT * FROM mailing_list WHERE id = '$id';");
$mail = $result->fetch_array();
?>
<div class="viewTitles" >Edit Your Queries:</div>
<form method = "post" action = "<? echo $_SERVER['PHP_SELF'] ?>">
<table>
<tr><td width="88" class="formLabelsS2" align="left">Promoter Locus:</td></tr>
<tr><td><input class = "basicTextField" type="text" name="pro_edit" value="<? echo $mail['pro']; ?>"></td></tr>
</table>
OK so what happens is:
I can delete entries with no problems by checking off the entries I want to delete then click delete button
But when I try to click “edit” button near a specific entry (individually), it DOES refer to a specific entry, but right after i SORT the table using sorttable.js, it would always refer to the LAST entry.
So I am suspecting there’s problem with positioning of the <form></form> inside the while loop (see the table script, as I put lot of space in between these lines for emphasis)
Note that I put these <form> and </form> lines as comment so I could do what I mention above, otherwise I couldn’t even delete any entries if I leave these 2 lines to be part of the while loop BUT !! I could edit specific entry even after I sort the table
I know this is long thread, so please let me know if you need more clarification
Thanks.