在process.php中选择,提交和通过电子邮件发送结果后,在HTML中显示复选框值

时间:2012-05-19 22:45:03

标签: php mysql html checkbox selection

我有一份清单,分为日,舞台,时间表和带名。我正在使用此脚本显示数据库中的选项,并且我试图在“进程”页面上向用户显示结果(并最终通过电子邮件发送给他们)。如何将$ result_x转移到下一页? 以下是星期六,第1阶段的一个“块”的示例,选择的值是该行的“ID”。

更新 - 第一部分解决了。现在希望将结果发送到用户输入的电子邮件地址。

FORM SOLUTION-'Selection.php'

        $sql_Sat1 = "SELECT * FROM bandSched WHERE day='saturday' AND stage='stage 1'"; 
    mysql_query($sql_Sat1); 
    $result_Sat1 = mysql_query($sql_Sat1);

            while($row = mysql_fetch_array($result_Sat1))
            {
                echo "<ul><li>";
    echo'<input type="checkbox" name="id[]" value="'.$row['id'].' " id="bandSched_' . $row['id'] . '" />';
    echo '<label for="bandSched_' . $row['id'] . '">' . $row['timeShow']." ".$row['bandName'] . '</label>'; 
    echo "</li></ul>";

            }

SOLUTION-'process.php'

        if ( ! empty($_POST['id']))
    { foreach($_POST['id'] as $key => $id) { $_POST['id'][$key] = mysql_real_escape_string($_POST['id'][$key]); } 
    $in = implode(', ', $_POST['id']); 
    $sql_Sat2 = "SELECT * FROM bandSched WHERE id IN ($in) ORDER BY FIELD(id, $in)"; 
    $result = mysql_query($sql_Sat2) or die('MySQL Error ' . mysql_errno() . ': ' . mysql_error()); 
    }
     if ( ! isset($result))
    {
    echo 'You did not select anything';
    }
    else
    {
    while ($row=mysql_fetch_assoc($result))
    {

    echo "<tr>";
    echo "<td>". $row['timeShow'] ."</td><td>" . $row['bandName'] . "</td>";
    echo "</tr>";
    }

    }

3 个答案:

答案 0 :(得分:1)

除非您的&lt; input type =“复选框”/&gt;中的属性已选中=“已选中”,否则该值不会与表单数据一起发送。

试试这个:

 echo '<input type="checkbox" value="' . $row['id'] .'"name="selected" checked="checked" />';

这是否解决了这个问题?

答案 1 :(得分:0)

可以使用会话,Cookie或发布包含数据的隐藏表单元素来完成页面之间的数据传输。

答案 2 :(得分:0)

会话为您提供数据,但您仍需要进行有效查询。会话所做的唯一事情是在服务器上存储数据。它们不保留任何程序执行,变量等。

您的错误消息告诉您mysql_fetch_array未提供MYSQL结果资源(并且您不是它提供了id值的整数)。整个会话都不会记住该查询。

此外,不推荐使用mysql_ *,使用PDO或mysqli。