0

我想发送一个带有复选框的数组到upload.php。每个复选框必须有一对从 mysql 列中提取的数据:CodigoCursoHorarioid. 我无法将这些信息发送到upload.php. 我该怎么做?

<?php
session_start();
$connection = mysql_connect("localhost", "root", "");
mysql_select_db("mydb", $connection);
$query = "SELECT Curso.CursoId, Hora.Horarioid,Persona.Cedula,Curso.CodigoCurso,Curso.NombreCurso,Curso.Creditos,Hora.Hora,Horario.PersonasMatriculadas FROM Persona INNER JOIN PreMatriculaEstudiante,Prematricula,Curso,Horario,Hora WHERE Persona.PersonaId = PreMatriculaEstudiante.PersonaId AND PreMatriculaEstudiante.PrematriculaID = Prematricula.PrematriculaId AND Prematricula.CursoId = Curso.CursoId AND Curso.CursoId = Horario.CursoId AND Horario.HorarioId = Hora.HorarioId AND Persona.Cedula = '" . $_SESSION["cedula"] . "'";
$result = mysql_query($query);

if ($row = mysql_fetch_array($result)) {
    echo "<form action='upload.php' method='POST'>";
    echo "<table border = '1'> \n";
    echo "<tr><td><b>Código Curso</b></td><td><b>Nombre Curso</b></td><td><b>Horario</b></td><td><b>Personas matriculadas</b></td></tr>";
    $k = 0;
    $t = 0;
    while ($array = mysql_fetch_array($result)) {
        echo "<tr>
                        <td>" . $array['CodigoCurso'] . "</td>" .
        "<td align='left'>" .
        "<input type='checkbox' name='info[$k][$k]' value='" . $array['CursoId'] . $array['Horarioid'] . "'.nonchecked>" . utf8_encode($array['NombreCurso']) . "</td>" .
        "<td>" . $array['Hora'] .
        "<td>" . $array['PersonasMatriculadas'] . "</td>" .
        "</tr>";

        $k++;
        $t++;
    }

    echo "</table> \n";
    echo "<p>";
    echo "<input type='submit' value='Ingresar datos'/>";
    echo "</p>";
    echo "</form>";
} else {
    echo "¡ No se ha encontrado ningún registro !";
}
4

2 回答 2

0

改变

<input type='checkbox' name='info[$k][$k]' value=

<input type='checkbox' name='**{info[$k][$k]}[]**' value=

但请注意,如果未在 html 页面上勾选复选框,则不会向服务器发送任何值。您将需要测试是否设置了复选框名称,如果没有,则对其应用值。或者更好的是,数据库字段应该有一个默认值。

于 2013-06-28T09:25:32.093 回答
0

您必须[]在复选框字段名称后添加方括号:

"<input type='checkbox' name='info[$k][$k][]' value='" . $array['CursoId'] . $array['Horarioid'] . "'.nonchecked>" . utf8_encode($array['NombreCurso']) . "</td>" .

请记住,如果未选中任何复选框,则不会发布该字段,因此您必须检查是否通过isset()函数设置。

重要提示:不要使用mysql_*函数,而是使用 PDO/mysqli。看看这里: 为什么我不应该在 PHP 中使用 mysql_* 函数?.

于 2013-06-28T09:32:07.123 回答