2014-01-09 172 views
0

美好的一天。我是一个PHP新手。获取复选框的值

我想要做的是我想从我的数据库中获取特定数据行的id。并更新我的桌子上的一些列。

我所做的这是什么..

<td style="width:50px;"><input type="checkbox" id="chkPending" name="chkPending[]" value="<?php echo $row['RequestNumber']; ?>"/></td> 
<td><a href="edit.php?id=<?php echo $row['RequestNumber']; ?>"><span class="label label-success">View Details</span></a></td> 
<td style="width:100px;"><?php echo $row['RequestNumber']; ?></td> 
<td style="width:100px;"><?php echo $row['Requestor']; ?></td> 
<td style="width:100px;"><?php echo $row['Department']; ?></td> 
<td style="width:50px;"><?php echo $row['category']; ?></td> 
<td style="width:100px;"><?php echo $row['AssignedTo']; ?></td> 
<td style="width:100px;"><?php echo $row['status']; ?></td> 
<td style="width:100px;"><?php echo $row['DateRequested']; ?></td> 
<td style="width:100px;"><?php echo $row['TimeRequested']; ?></td> 

PHP代码

<?php 
    $RequestNumber = $POST_['chkPending']; 

    $sql = "UPDATE tblrequest SET Assignedto = 'personnel', status = 'Assigned' WHERE RequestNumber = '$RequestNumber'"; 
    if (isset($_POST['submit'])) { 
     $success = mysql_query($sql) or die(mysql_error()); 
     mysql_close(); 
    } 

    if ($success == TRUE) { 
?> 
     <script> 
      alert('You have successfully update account.'); 
     </script> 
<?php 
    } 
?> 

我希望得到任何帮助。先谢谢你。

这是我的全部代码:**

+0

First:$ RequestNumber = $ POST _ ['chkPending'];你需要把它写成$ RequestNumber = $ _POST ['chkPending']; – Goikiu

+0

我的不好。我改变了它,但仍然不起作用 – rapidoodle

+0

请记住你的var $ RequestNumber是一个数据数组......如果我正确记得它需要以不同的方式处理。 – Goikiu

回答

0

更改您输入的名称本:

<input type="checkbox" id="chkPending" name="chkPending[<?= $row['RequestNumber']; ?>]" /> 

在你的PHP代码做到这一点:

<?php 
if (isset($_POST['submit'])) { 

    foreach($_POST['chkPending'] as $RequestNumber=>$value) 
    { 
     $sql = "UPDATE tblrequest SET Assignedto = 'personnel', status = 'Assigned' WHERE RequestNumber = '".$RequestNumber."'"; 
     $success = mysql_query($sql) or die(mysql_error()); 
    } 

    mysql_close(); 
} 

if ($success == TRUE) { 

?> 
<?php 
    <script> 
     alert('You have successfully update account.'); 
    </script> 
<?php 
} 
?> 

您可以使用此代码比较一下。此代码正在工作,将打印2,4。

<form action="#" method="POST"> 
<input name="test[1]" type="checkbox" /> 
<input name="test[2]" checked type="checkbox" /> 
<input name="test[3]" type="checkbox" /> 
<input name="test[4]" checked type="checkbox" /> 
<input type="submit" /> 
</form> 

<?php 

if($_POST) 
{ 
    foreach($_POST['test'] as $id => $value) 
    { 
     echo $id.'<br />'; 
    } 
} 

?> 
+0

它给了我这个错误的家伙。警告:为第15行的C:\ xampp \ htdocs \ iHelp \ pendingRequest_admin.php中的foreach()提供的无效参数 – rapidoodle

+0

您能打印整个代码吗?顺便说一句,从复选框中删除id =“chkPending”。禁止多次使用ID。 –

+0

该死的我不知道如何stackoverflow工程:-)第一次..但我编辑我的答案! –