0

我已经设法使用带有复选框的 php 从 mysql 数据库中提取记录。我正在努力使选定的记录(带有复选框)出现在新页面上。到目前为止,这是我的代码:

<?php 
include('connect.php');
$query = 'SELECT * FROM grades'; 

if ($r = mysql_query($query)) {  
    print "<form> 
    <table>"; 
    while ($row = mysql_fetch_array($r)) { 
        print  
            "<tr> 
            <td>{$row['InstitutionName']}</td> 
            <td>{$row['InstitutionAddress']}</td> 
            <td>{$row['SubjectArea']}</td> 
            <td><input type='checkbox' name='check[$row{['GradeID']}] value='check' /></td> 
            </tr>"; 
    } 
    print "</table> 
    </form>"; 

    $checkbox[] = isset($_POST['checkbox']) ? true : false;
} else {  
    print '<p style="color: blue">Error!</p>'; 
}  
?> 

<html>
<form action="check2.php" method="POST">
<input type='submit' name='Submit' value='Submit'>
</html>

在我希望显示所选记录的页面上,我有:

<?php
if(isset($checkbox)) 
{ 
    foreach($checkbox as $value) 
    { 
        echo $value."<br>"; //it will print the value of your checkbox that you checked 
    } 
} 
?>

任何援助将不胜感激!

4

4 回答 4

0

更好的方法是将复选框命名为 check[]。然后每个复选框值应该是 ID(而不是检查)。

然后在您的结果页面上,只需遍历 check[] 的每个实例并打印出该值。

于 2012-10-01T14:22:34.397 回答
0
check[$row{['GradeID']}]

对我来说似乎不正确,应该是:

check[{$row['GradeID']}]

注意移动的左大括号到 $ 之前

对不起,如果这是错误的,很长时间没有使用 PHP,但它对我来说很突出

于 2012-10-01T14:25:24.697 回答
0

这是表单打印功能中的几个错误。您必须将操作放在第一个表单上,而不是第二个表单上,您还必须更改打印复选框的方式。尝试以这种方式打印表单:

<?php 
    include('connect.php');
    $query = 'SELECT * FROM grades'; 

    if ($r = mysql_query($query)) {  
        print "

            <form action=\"check2.php\" method=\"POST\">

            <table>"; 

        while ($row = mysql_fetch_array($r)) { 
            print  
                "<tr> 
                     <td>{$row['InstitutionName']}</td> 
                     <td>{$row['InstitutionAddress']}</td> 
                     <td>{$row['SubjectArea']}</td> 
                     <td><input type='checkbox' name='check[".$row['GradeID']."]         value='".$row['GradeID']."' /></td>
                 </tr>"; 
        }

        print "</table>
               <input type='submit' name='Submit' value='Submit'>
               </form>"; 

        $checkbox[] = isset($_POST['checkbox']) ? true : false;
    } else {  
        print '<p style="color: blue">Error!</p>'; 
    }  
?>

并打印读取 _REQUEST 数组的复选框:

<?php   
    if(isset($_REQUEST["check"])) 
    { 
        foreach($_REQUEST["check"] as $key=>$value) 
        { 
            echo $key."<br>"; //it will print the value of your checkbox that you checked 
        } 
    } 
?>

这应该有效。

于 2012-10-01T14:41:15.300 回答
0

把checked="checked" 就像你把value="check" 放在一起:

<td><input type='checkbox' name='check[$row{['GradeID']}] value='check' checked="checked" /></td>

编辑:

大概是我误会了你。你期望看到什么?

首先,您应该使表单执行 POST 请求而不是 GET(默认):

print "<form method='POST' action='THE_FILE_YOU_PRINT_RESULTS.php'>"

然后在“THE_FILE_YOU_PRINT_RESULTS.php”print_r($_POST);中查看你得到了什么以及如何显示它。

于 2012-10-01T14:17:46.033 回答