2012-02-23 54 views
1

我们无法获取删除“提交”按钮进行设置,否则会起作用,我们无法理解哪部分代码是错误的。提交按钮不会设置

想象有几列,其中从数据库中包含数据的TD的

// While it goes through each row (which is selected from another SQL query above, but I won't bother pasting that) 
while ($row = mysql_fetch_array($result)) { 
// Variable is equal to the Request ID (e.g. 10) 
$numb = $row['ReqID']; 

// Echo's the table td rows with each column name in the database 
echo "<tr>"; 
echo "<td class='req' align='center'>".$row['ReqID']."</td>"; 
echo "<td class='req' align='center'>".$row['ModTitle']."</td>"; 
echo "<td class='req' align='center'>".$row['BuildingID']."</td>"; 
echo "<td class='req' align='center'>".$row['RoomID']."</td>"; 
echo "<td class='req' align='center'>".$row['Priority']."</td>"; 
echo "<td class='req' align='center'>".$row['W1']."</td>"; 
echo "<td class='req' align='center'>".$row['P1']."</td>"; 
// Delete button also in a td row, uses the variable "$numb" to set the button name 
echo "<td class='req' align='center'><input type='submit' name='{$numb}' value='Delete'></td>"; 
echo "</tr>"; 

// If the delete button is pressed, delete the row (this query works, we tested it, but the button just doesn't set so it doesn't activate the SQL command) 
if (isset($_POST[$numb])) { 
$result2 = mysql_query("DELETE FROM Request WHERE ReqID = {$numb} LIMIT 1", $connection); 
} 
} 
+1

你为什么用{}包装$麻烦? – 2012-02-23 17:01:35

+2

我假设整个事物都围绕着'

'标签,对吧? – papaiatis 2012-02-23 17:02:35

+0

与您的问题无关,但该代码在删除后会显示已删除的行......是否为预期行为? – bfavaretto 2012-02-23 17:05:40

回答

1

使用hidden输入存储值表行:

以上地方......

<form method="post" action="delete.php"> 

稍微低于...

echo "<td class='req' align='center'><input type='submit' name='submit' value='Delete'>"; 
echo '<input name="hello" type="hidden" value="$numb" /></td>'; 
... 
$number = mysql_real_escape_string($_POST["hello"]); 
$result2 = mysql_query("DELETE FROM Request WHERE ReqID = ".$number." LIMIT 1", $connection); 

底部:

</form> 

注:

你的做法是不够安全的。我可以轻松地编辑DOM并为隐藏字段(或按钮的另一个名称)提供另一个值,从而删除数据库中的其他元素。请记住这一点。

+0

你打算'echo' ...''? – 2012-02-23 17:11:23

+0

是的,刚刚更新了我的代码,但它也不是更好。如果它只是一个ID,我仍然可以从数据库中删除其他东西...我注意到他的方法本身很糟糕。 – papaiatis 2012-02-23 17:15:33

+0

好点。 +1。 – 2012-02-23 17:39:01